-
เครื่องมือจัดการเวอร์ชันภายในของ Facebook พัฒนาบนพื้นฐานของ Mercurial แต่ขยายให้เหมาะกับการใช้งานของตนเอง
-
ประกอบด้วย 3 คอมโพเนนต์
→ eden : เครื่องมือ CLI รองรับ Windows/Mac/Linux
→ Mononoke : เซิร์ฟเวอร์ SCM ที่ไม่ใช่แบบกระจายศูนย์ เพื่อรองรับ repo ขนาดใหญ่มาก ตอน checkout จะดาวน์โหลดมาเพียงบางส่วนแทนที่จะดาวน์โหลดทั้งหมด และดาวน์โหลดเพิ่มเมื่อจำเป็น รองรับเฉพาะ Linux มีแผนรองรับ Rust Cargo
→ EdenFS : ระบบไฟล์เสมือนสำหรับจัดการการ checkout ใช้เพื่อให้ checkout ได้รวดเร็วใน repo ขนาดใหญ่ คล้ายกับ Sparse Checkout แต่สะดวกกว่าสำหรับผู้ใช้มากเพราะไม่ต้องจัดการรายการแยกต่างหาก และยังเชื่อมต่อกับ Watchman ได้ รองรับ Linux/Mac/Windows
- เนื่องจากสร้างขึ้นมาเพื่อรองรับโค้ดเบส monorepo ขนาดมหึมาของ Facebook การรองรับภายนอก 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 ขนาดมหึมา ดังนั้น Git ในยุคนั้น (ช่วงต้นทศวรรษ 2010) จึงไม่เหมาะนัก เลยอาจมองได้ว่าพวกเขาเลือกเดินในทางของตัวเอง
→ Google ณ ปี 2016 มีขนาด 86TB, 2 พันล้านบรรทัด, ไฟล์ซอร์สโค้ด 9 ล้านไฟล์ และคอมมิต 35 ล้านครั้ง
→ Facebook ณ ปี 2013 มี 17 ล้านบรรทัด และไฟล์ซอร์สโค้ด 44,000 ไฟล์
ตอนนี้ Git เองก็รองรับ Sparse Checkout ตั้งแต่ 2.25 แล้ว แต่ก็ยังนับได้ว่าอยู่ในช่วงเริ่มต้น
Git 2.25 รีลีส - การเปลี่ยนแปลงสำคัญ https://th.news.hada.io/topic?id=1309