Sapling SCM ist ein plattformübergreifendes, hoch skalierbares, Git-kompatibles Quellcodeverwaltungssystem.
Ziel ist es, sowohl benutzerfreundliche als auch leistungsstarke Schnittstellen für Benutzer bereitzustellen sowie eine extreme Skalierbarkeit für den Umgang mit Repositorys mit vielen Millionen Dateien und vielen Millionen Commits.
Um mit der Verwendung von Sapling zu beginnen, erfahren Sie auf der Seite „Erste Schritte“, wie Sie Ihre vorhandenen Git-Repositorys klonen. Schauen Sie sich die Übersicht an, um einen Blick auf die verschiedenen Funktionen zu werfen. Kommt es von Git? Schauen Sie sich den Git-Spickzettel an.
Sapling verfügt außerdem über eine Interactive Smartlog (ISL)-Web-Benutzeroberfläche zum Anzeigen und Interagieren mit Ihrem Repository sowie über ein in VS Code integriertes Interactive Smartlog.
Sapling SCM besteht aus drei Hauptkomponenten:
sl
Befehlszeile und Webschnittstelle für Benutzer zur Interaktion mit Sapling SCM.Die Skalierbarkeitsziele von Sapling SCM bestehen darin, sicherzustellen, dass alle Quellcodeverwaltungsvorgänge mit der Anzahl der von einem Entwickler verwendeten Dateien und nicht mit der Größe des Repositorys selbst skaliert werden. Dies ermöglicht schnelle, leistungsstarke Entwicklererfahrungen selbst in riesigen Repositorys mit Millionen von Dateien und extrem langen Commit-Verläufen.
Die Sapling-CLI, sl
, basierte ursprünglich auf Mercurial und teilt verschiedene Aspekte der Benutzeroberfläche und Funktionen von Mercurial.
Der CLI-Code befindet sich im Unterverzeichnis eden/scm
.
Mononoke ist die serverseitige Komponente von Sapling SCM.
Während es in der Produktion innerhalb von Meta verwendet wird, wird es für die externe Verwendung noch nicht unterstützt. OSS-Builds in GitHub Actions stehen für nicht unterstützte Experimente zur Verfügung.
EdenFS ist ein virtuelles Dateisystem zur Verwaltung von Sapling-Kassen.
Während es in der Produktion innerhalb von Meta verwendet wird, wird es für die externe Verwendung noch nicht unterstützt. OSS-Builds in GitHub Actions stehen für nicht unterstützte Experimente zur Verfügung.
EdenFS beschleunigt Vorgänge in großen Repositorys, indem es Arbeitsverzeichnisdateien nur bei Bedarf füllt, wenn auf sie zugegriffen wird. Dadurch werden Vorgänge wie checkout
viel schneller, im Gegenzug zu einem kleinen Leistungseinbruch beim ersten Zugriff auf neue Dateien. Dies ist in großen Repositories von großem Vorteil, da Entwickler häufig jeweils nur mit einer kleinen Teilmenge des Repositorys arbeiten.
Eine ausführlichere EdenFS-Designdokumentation finden Sie unter eden/fs/docs/Overview.md.
Die Sapling-CLI wird derzeit unter Linux, Mac und Windows erstellt und ausgeführt. Es kann erstellt werden, indem man make oss
im Verzeichnis eden/scm
ausführt und die daraus resultierende ausführbare sl
Datei ausführt.
Für die Erstellung der Sapling-CLI sind Python 3.8, Rust, CMake und OpenSSL für die Haupt-CLI sowie Node und Yarn für die ISL-Web-Benutzeroberfläche erforderlich.
Sie können ein Problem auf GitHub melden oder dem Discord beitreten
Das Hauptprojekt ist unter GPL-2.0 lizenziert.
Die Website und ISL sind unter MIT lizenziert.
Bibliotheksunterprojekte, wie z. B. Minibytes, verfügen möglicherweise über unterschiedliche Lizenzen. Detaillierte Informationen finden Sie in der LICENSE
-Datei und den Quellcode-Headern in jeder Bibliothek.