-
Ferramenta de controle de versão interna do Facebook. Foi criada com base no Mercurial, mas expandida para atender às próprias necessidades da empresa.
-
Composta por 3 componentes
→ eden : ferramenta de CLI. Windows/Mac/Linux
→ Mononoke : servidor de SCM não distribuído. Para oferecer suporte a repositórios gigantes, no checkout baixa apenas parte do conteúdo em vez de tudo, e faz downloads adicionais quando necessário. Somente Linux. Suporte ao Rust Cargo previsto
→ EdenFS : sistema de arquivos virtual para gerenciar checkouts. Usado para fazer checkouts rápidos em repositórios gigantes. É semelhante ao Sparse Checkout, mas muito mais conveniente para o usuário por não exigir o gerenciamento de uma lista separada. Também integra com o Watchman. Linux/macOS/Windows
- Como foi criado para dar suporte ao enorme código-base monorepo do Facebook, o suporte para uso fora do Facebook ainda está em fase experimental.
1 comentários
A Microsoft expandiu o Git com o VFS for Git https://vfsforgit.org/
O Google usa o Piper https://cacm.acm.org/magazines/2016/…
Por que o Facebook escolheu uma base em Mercurial https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/
Windows/Google/Facebook são todos monorepos gigantescos, então dá para ver isso como o fato de que o Git daquela época (início dos anos 2010) não era adequado e cada um seguiu seu próprio caminho.
→ Em 2016, o Google tinha 86 TB, 2 bilhões de linhas, 9 milhões de arquivos de código-fonte e 35 milhões de commits
→ Em 2013, o Facebook tinha 17 milhões de linhas e 44 mil arquivos de código-fonte
Hoje o Git também oferece suporte a Sparse Checkout a partir da versão 2.25, mas ainda dá para considerar que está em estágio inicial.
Lançamento do Git 2.25 - principais mudanças https://pt.news.hada.io/topic?id=1309