-
Herramienta interna de control de versiones de Facebook. Está basada en Mercurial, pero fue ampliada para adaptarse a sus necesidades.
-
Está compuesta por 3 componentes
→ eden: herramienta CLI. Windows/Mac/Linux
→ Mononoke: servidor SCM no distribuido. Para soportar repositorios enormes, al hacer checkout descarga solo una parte en lugar de todo, y descarga más cuando hace falta. Solo Linux. Soporte para Rust Cargo próximamente
→ EdenFS: sistema de archivos virtual para gestionar el checkout. Se usa para hacer checkouts rápidos en repositorios enormes. Es similar a Sparse Checkout, pero resulta mucho más conveniente para el usuario porque no requiere administrar una lista por separado. También se integra con Watchman. Linux/Mac/Windows
- Fue creado para soportar la enorme base de código monorepo de Facebook, por lo que el soporte fuera de Facebook todavía está en fase experimental.
1 comentarios
MS tiene VFS for Git, una extensión de Git: https://vfsforgit.org/
Google tiene Piper: https://cacm.acm.org/magazines/2016/…
Por qué Facebook eligió una base en Mercurial: https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/
Windows/Google/Facebook tienen todos monorepos gigantes, así que puede verse como que, en esa época (a inicios de la década de 2010), Git no era adecuado y por eso siguieron su propio camino.
→ En el caso de Google, en 2016 eran 86 TB, 2 mil millones de líneas, 9 millones de archivos de código fuente y 35 millones de commits
→ En el caso de Facebook, en 2013 eran 17 millones de líneas y 44,000 archivos de código fuente
Ahora Git también soporta Sparse Checkout desde la versión 2.25, pero todavía puede considerarse en una etapa inicial.
Lanzamiento de Git 2.25 - principales cambios: https://es.news.hada.io/topic?id=1309