5 คะแนน โดย xguru 2020-05-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือจัดการเวอร์ชันภายในของ 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 ความคิดเห็น

 
xguru 2020-05-11

ทั้ง 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