5 points par xguru 2020-05-11 | 1 commentaires | Partager sur WhatsApp
  • 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

 
xguru 2020-05-11

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