-
Outil interne de gestion de versions de Facebook. Écrit sur la base de Mercurial, mais étendu pour répondre à leurs besoins.
-
Composé de 3 composants
→ eden : outil CLI. Windows / Mac / Linux
→ Mononoke : serveur SCM non distribué. Pour prendre en charge d’énormes dépôts, il ne télécharge pas l’intégralité lors du checkout, mais seulement une partie, puis télécharge le reste à la demande. Linux uniquement. Prise en charge de Rust Cargo prévue
→ EdenFS : système de fichiers virtuel pour gérer le checkout. Utilisé pour effectuer rapidement des checkouts sur d’énormes dépôts. Semblable à Sparse Checkout, mais bien plus pratique pour l’utilisateur car il n’est pas nécessaire de gérer une liste séparée. Intégration également avec Watchman. Linux / Mac / Windows
- Conçu pour prendre en charge l’énorme base de code en monorepo de Facebook, le support hors de Facebook est encore expérimental pour le moment.
1 commentaires
MS a étendu Git avec VFS for Git https://vfsforgit.org/
Google utilise Piper https://cacm.acm.org/magazines/2016/…
Pourquoi Facebook a choisi une base Mercurial https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/
Windows/Google/Facebook ont tous d’immenses monorepos, donc on peut considérer que le Git de l’époque (début des années 2010) n’était pas adapté et qu’ils ont suivi leur propre voie.
→ Google en 2016 : 86 To, 2 milliards de lignes, 9 millions de fichiers de code source et 35 millions de commits
→ Facebook en 2013 : 17 millions de lignes et 44 000 fichiers de code source
Aujourd’hui, Git prend bien en charge Sparse Checkout à partir de la version 2.25, mais on peut encore considérer que cela en est à ses débuts.
Sortie de Git 2.25 - principaux changements https://fr.news.hada.io/topic?id=1309