5 ポイント 投稿者 xguru 2020-05-11 | 1件のコメント | WhatsAppで共有
  • Facebookの独自バージョン管理ツール。Mercurialベースで作られているが、自社向けに拡張。

  • 3つのコンポーネントで構成

→ eden : CLIツール。Windows/Mac/Linux

→ Mononoke : 分散型ではないSCMサーバー。巨大なRepoをサポートするため、チェックアウト時に全体ではなく一部だけをダウンロードし、必要なときに追加でダウンロード。Linuxのみ。Rust Cargo対応予定

→ EdenFS : チェックアウトを管理するための仮想ファイルシステム。巨大なRepoで高速にチェックアウトするために使用。Sparse Checkoutと似ているが、別途リスト管理が不要なため、ユーザーにとってはるかに便利な方式。Watchmanとも連携。Linux/Mac/Windows

  • Facebookの巨大なMonorepoコードベースを支えるために作られたもので、Facebook外でのサポートはまだ実験段階。

1件のコメント

 
xguru 2020-05-11

Windows/Google/Facebook はどれも超大型の Monorepo なので、当時(2010年代前半)の Git は適しておらず、それぞれ独自の道を進んだと考えればよさそうです。

→ Google は 2016年時点で 86TB、20億行、900万個のソースコードファイル、3500万件のコミット

→ Facebook は 2013年時点で 1700万行、44000個のソースコードファイル

今では Git も 2.25 から Sparse Checkout をサポートしていますが、まだ初期段階と見てよいでしょう。

Git 2.25 リリース - 主な変更点 https://ja.news.hada.io/topic?id=1309