5 điểm bởi xguru 2020-05-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ quản lý phiên bản nội bộ của Facebook. Được xây dựng dựa trên Mercurial nhưng đã được mở rộng để phù hợp với nhu cầu riêng của họ.

  • Gồm 3 thành phần

→ eden : công cụ CLI. Windows/macOS/Linux

→ Mononoke : máy chủ SCM không theo mô hình phân tán. Để hỗ trợ các repo khổng lồ, khi checkout sẽ không tải toàn bộ mà chỉ tải một phần, rồi tải thêm khi cần. Chỉ hỗ trợ Linux. Dự kiến sẽ hỗ trợ Rust Cargo

→ EdenFS : hệ thống tệp ảo để quản lý checkout. Được dùng để checkout nhanh trong các repo khổng lồ. Tương tự Sparse Checkout nhưng tiện hơn nhiều cho người dùng vì không cần quản lý danh sách riêng. Cũng tích hợp với Watchman. Linux/macOS/Windows

  • Vì được tạo ra để hỗ trợ codebase monorepo khổng lồ của Facebook nên việc hỗ trợ bên ngoài Facebook hiện vẫn đang trong giai đoạn thử nghiệm.

1 bình luận

 
xguru 2020-05-11

Có thể hiểu là vì Windows/Google/Facebook đều dùng monorepo siêu lớn, nên Git của thời đó (đầu những năm 2010) không phù hợp và họ đã đi theo con đường riêng của mình.

→ Tính đến năm 2016, Google có 86TB, 2 tỷ dòng, 9 triệu tệp mã nguồn và 35 triệu commit

→ Tính đến năm 2013, Facebook có 17 triệu dòng và 44.000 tệp mã nguồn

Hiện nay Git cũng đã hỗ trợ Sparse Checkout từ phiên bản 2.25, nhưng vẫn có thể xem là còn ở giai đoạn đầu.

Các thay đổi chính trong bản phát hành Git 2.25 - https://vi.news.hada.io/topic?id=1309