EdenSCM - クロスプラットフォーム高拡張性バージョン管理ツール
(github.com)-
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件のコメント
MS は Git を拡張した VFS for Git https://vfsforgit.org/
Google は Piper https://cacm.acm.org/magazines/2016/…
Facebook が Mercurial ベースを選んだ理由 https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/
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