Sapling SCM é um sistema de controle de origem compatível com Git, multiplataforma, altamente escalável.
Seu objetivo é fornecer interfaces fáceis de usar e poderosas para os usuários, bem como extrema escalabilidade para lidar com repositórios contendo muitos milhões de arquivos e muitos milhões de commits.
Para começar a usar o Sapling, consulte a página Introdução para saber como clonar seus repositórios Git existentes. Confira a visão geral para dar uma olhada nos vários recursos. Vindo do Git? Confira a folha de dicas do Git.
Sapling também vem com uma UI web Interactive Smartlog (ISL) para ver e interagir com seu repositório, bem como um Smartlog interativo integrado ao VS Code.
O Sapling SCM é composto por três componentes principais:
sl
do lado do cliente e a interface da web para os usuários interagirem com o Sapling SCM.Os objetivos de escalabilidade do Sapling SCM são garantir que todas as operações de controle de origem sejam dimensionadas com o número de arquivos em uso por um desenvolvedor, e não com o tamanho do repositório em si. Isso permite experiências de desenvolvedor rápidas e de alto desempenho, mesmo em repositórios enormes com milhões de arquivos e históricos de commits extremamente longos.
A CLI do Sapling, sl
, foi originalmente baseada no Mercurial e compartilha vários aspectos da UI e recursos do Mercurial.
O código CLI pode ser encontrado no subdiretório eden/scm
.
Mononoke é o componente do servidor do Sapling SCM.
Embora seja usado na produção dentro do Meta, ainda não é compatível para uso externo. As compilações de OSS no GitHub Actions estão disponíveis para experimentação sem suporte.
EdenFS é um sistema de arquivos virtual para gerenciar checkouts Sapling.
Embora seja usado na produção dentro do Meta, ainda não é compatível para uso externo. As compilações de OSS no GitHub Actions estão disponíveis para experimentação sem suporte.
O EdenFS acelera as operações em grandes repositórios, preenchendo apenas os arquivos do diretório de trabalho sob demanda, à medida que são acessados. Isso torna operações como checkout
muito mais rápidas, em troca de um pequeno impacto no desempenho ao acessar novos arquivos pela primeira vez. Isso é bastante benéfico em repositórios grandes, onde os desenvolvedores geralmente trabalham apenas com um pequeno subconjunto do repositório por vez.
Documentação de design mais detalhada do EdenFS pode ser encontrada em eden/fs/docs/Overview.md.
A CLI do Sapling atualmente é construída e executada em Linux, Mac e Windows. Ele pode ser construído executando make oss
no diretório eden/scm
e executando o executável sl
resultante.
Construir o Sapling CLI requer Python 3.8, Rust, CMake e OpenSSL para o cli principal e Node and Yarn para a ISL web UI.
Você pode relatar um problema no GitHub ou ingressar no Discord
O projeto principal está licenciado sob GPL-2.0.
O site e o ISL são licenciados pelo MIT.
Subprojetos de biblioteca, como minibytes, podem ter licenças diferentes. Consulte o arquivo LICENSE
e os cabeçalhos do código-fonte em cada biblioteca para obter informações detalhadas.