Sapling SCM est un système de contrôle de source multiplateforme, hautement évolutif et compatible avec Git.
Il vise à fournir des interfaces à la fois conviviales et puissantes aux utilisateurs, ainsi qu'une évolutivité extrême pour gérer des référentiels contenant plusieurs millions de fichiers et plusieurs millions de commits.
Pour commencer à utiliser Sapling, consultez la page Mise en route pour savoir comment cloner vos référentiels Git existants. Consultez l'aperçu pour un aperçu des différentes fonctionnalités. Vous venez de Git ? Consultez l'aide-mémoire Git.
Sapling est également livré avec une interface utilisateur Web Interactive Smartlog (ISL) pour voir et interagir avec votre référentiel, ainsi qu'un Smartlog interactif intégré à VS Code.
Sapling SCM est composé de trois composants principaux :
sl
côté client et l'interface Web permettant aux utilisateurs d'interagir avec Sapling SCM.Les objectifs d'évolutivité de Sapling SCM sont de garantir que toutes les opérations de contrôle de code source évoluent en fonction du nombre de fichiers utilisés par un développeur, et non en fonction de la taille du référentiel lui-même. Cela permet des expériences de développement rapides et performantes, même dans des référentiels volumineux contenant des millions de fichiers et des historiques de validation extrêmement longs.
La CLI Sapling, sl
, était à l'origine basée sur Mercurial et partage divers aspects de l'interface utilisateur et des fonctionnalités de Mercurial.
Le code CLI se trouve dans le sous-répertoire eden/scm
.
Mononoke est le composant côté serveur de Sapling SCM.
Bien qu'il soit utilisé en production au sein de Meta, il n'est pas encore pris en charge pour un usage externe. Les builds OSS dans GitHub Actions sont disponibles pour des expérimentations non prises en charge.
EdenFS est un système de fichiers virtuel pour gérer les caisses Sapling.
Bien qu'il soit utilisé en production au sein de Meta, il n'est pas encore pris en charge pour un usage externe. Les builds OSS dans GitHub Actions sont disponibles pour des expérimentations non prises en charge.
EdenFS accélère les opérations dans les grands référentiels en remplissant uniquement les fichiers du répertoire de travail à la demande, au fur et à mesure de leur accès. Cela rend les opérations telles que checkout
beaucoup plus rapides, en échange d'une légère baisse de performances lors du premier accès à de nouveaux fichiers. Ceci est très avantageux dans les grands référentiels où les développeurs ne travaillent souvent qu'avec un petit sous-ensemble du référentiel à la fois.
Une documentation de conception EdenFS plus détaillée peut être trouvée sur eden/fs/docs/Overview.md.
La CLI Sapling est actuellement construite et fonctionne sous Linux, Mac et Windows. Il peut être construit en exécutant make oss
dans le répertoire eden/scm
et en exécutant l'exécutable sl
résultant.
La création de la CLI Sapling nécessite Python 3.8, Rust, CMake et OpenSSL pour la CLI principale, ainsi que Node et Yarn pour l'interface utilisateur Web ISL.
Vous pouvez signaler un problème sur GitHub ou rejoindre le Discord
Le projet principal est sous licence GPL-2.0.
Le site Web et ISL sont sous licence MIT.
Les sous-projets de bibliothèque, tels que les mini-octets, peuvent avoir des licences différentes. Veuillez vous référer au fichier LICENSE
et aux en-têtes du code source dans chaque bibliothèque pour des informations détaillées.