sapling - Sapling SCM 是一个跨平台、高度可扩展、兼容 Git 的源代码控制系统。

Created at: 2016-05-06 00:53:47
Language: Rust
License: GPL-2.0

树苗单片机

树苗 SCM 是一个跨平台、高度可扩展、与 Git 兼容的源代码管理系统。

它旨在为用户提供用户友好和强大的界面,以及处理包含数百万个文件和数百万次提交的存储库的极端可扩展性。

使用树苗

要开始使用 Sapling,请参阅入门页面,了解如何克隆现有 Git 存储库。查看概述以了解各种功能。来自 Git?查看 Git 备忘单

树苗还带有交互式智能日志(ISL)Web UI,用于查看存储库并与之交互,以及VS Code集成的交互式智能日志。

树苗生态系统

树苗SCM由三个主要组成部分组成:

  • 树苗客户端:客户端命令行和Web界面,供用户与树苗SCM交互。
    sl
  • Mononoke:高度可扩展的分布式源代码管理服务器。(尚未公开支持。
  • EdenFS:一个虚拟文件系统,用于有效地签出大型存储库。(尚未公开支持。

Sapling SCM 的可伸缩性目标是确保所有源代码管理操作都随开发人员使用的文件数量而扩展,而不是随存储库本身的大小而扩展。即使在具有数百万个文件和极长提交历史记录的庞大存储库中,也能实现快速、高性能的开发人员体验。

树苗命令行界面

树苗 CLI 最初基于 Mercurial,并共享 Mercurial 的 UI 和功能的各个方面。

sl

CLI 代码可以在子目录中找到。

eden/scm

幽灵

Mononoke是Sapling SCM的服务器端组件。

虽然它在 Meta 的生产中使用,但它目前不在开源环境中构建,并且尚不支持外部使用。

伊甸园

EdenFS 是一个用于管理树苗结账的虚拟文件系统。

虽然它在 Meta 的生产中使用,但它目前不在开源环境中构建,并且尚不支持外部使用。

EdenFS 通过在访问工作目录文件时仅按需填充工作目录文件来加快大型存储库中的操作速度。这使得操作速度更快,以换取首次访问新文件时的性能小幅下降。这在大型存储库中非常有用,因为开发人员通常一次只使用存储库的一小部分。

checkout

更详细的EdenFS设计文档可以在eden/fs/docs/Overview.md找到。

构建树苗 CLI

Sapling CLI 目前在 Linux、Mac 和 Windows 上构建和运行。可以通过在目录中运行并运行生成的可执行文件来构建它。

make oss
eden/scm
sl

构建 Sapling CLI 需要 Python 3.8、Rust、cmake 和 OpenSSL 作为主 cli,Node 和 Yarn 用于 ISL Web UI。

许可证

请参阅许可证