-
Alat manajemen versi internal Facebook. Dibangun berbasis Mercurial, tetapi diperluas agar sesuai dengan kebutuhan mereka.
-
Terdiri dari 3 komponen
→ eden: alat CLI. Windows/Mac/Linux
→ Mononoke: server SCM yang bukan terdistribusi. Untuk mendukung repo berukuran sangat besar, saat checkout tidak mengunduh seluruhnya melainkan hanya sebagian, lalu mengunduh tambahan saat diperlukan. Hanya untuk Linux. Dukungan Rust Cargo direncanakan
→ EdenFS: sistem file virtual untuk mengelola checkout. Digunakan agar checkout cepat pada repo berukuran sangat besar. Mirip dengan Sparse Checkout, tetapi jauh lebih nyaman bagi pengguna karena tidak perlu mengelola daftar terpisah. Juga terintegrasi dengan Watchman. Linux/Mac/Windows
- Dibuat untuk mendukung codebase monorepo Facebook yang sangat besar, sehingga dukungan di luar Facebook masih dalam tahap eksperimental.
1 komentar
MS memperluas Git dengan VFS for Git https://vfsforgit.org/
Google menggunakan Piper https://cacm.acm.org/magazines/2016/…
Alasan Facebook memilih basis Mercurial https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/
Windows/Google/Facebook semuanya adalah monorepo berskala sangat besar, jadi bisa dibilang Git pada masa itu (awal 2010-an) tidak cocok, sehingga mereka menempuh jalan mereka sendiri.
→ Google per 2016: 86TB, 2 miliar baris, 9 juta file kode sumber, dan 35 juta commit
→ Facebook per 2013: 17 juta baris dan 44.000 file kode sumber
Sekarang Git juga sudah mendukung Sparse Checkout sejak 2.25, tetapi masih bisa dibilang berada pada tahap awal.
Rilis Git 2.25 - perubahan utama https://id.news.hada.io/topic?id=1309