14 个版本
0.2.20240116-133042+8acec… | 2024年1月16日 |
---|---|
0.2.20231113-145254+995db… | 2023年11月13日 |
0.2.20230426-145232+7ea1f… | 2023年4月26日 |
0.2.20230330-193452-h6969… | 2023年3月31日 |
0.1.20221118-210929-cfbb6… | 2022年11月19日 |
#7 in #用户友好
5,557 个星标 & 72 个关注者
120KB
3K SLoC
Sapling SCM
Sapling SCM 是一个跨平台、高度可扩展、兼容 Git 的源代码控制系统。
它旨在为用户提供既友好又强大的接口,同时具有极好的可扩展性,以处理包含数百万文件和提交的仓库。
使用 Sapling
要开始使用 Sapling,请参阅 入门 页面,了解如何克隆现有的 Git 仓库。查看 概览,了解各种功能。来自 Git?查看 Git 快速参考。
Sapling 还附带一个 交互式智能日志 (ISL) 网页界面,用于查看和交互仓库,以及 VS Code 集成的交互式智能日志。
Sapling 生态系统
Sapling SCM 由三个主要组件组成
- Sapling 客户端:用户与 Sapling SCM 交互的客户端
sl
命令行和网页界面。 - Mononoke:一个高度可扩展的分布式源代码控制服务器。(尚未公开支持。)
- EdenFS:一个用于高效检出大型仓库的虚拟文件系统。(尚未公开支持。)
Sapling SCM 的可扩展性目标是确保所有源代码控制操作都随着开发者使用的文件数量而扩展,而不是随着仓库本身的大小而扩展。这使得即使在包含数百万文件和非常长的提交历史记录的巨大仓库中,也能提供快速、高效的开发者体验。
Sapling CLI
Sapling CLI,sl
,最初基于 Mercurial,并与 Mercurial 的 UI 和功能共享一些方面。
CLI 代码位于 eden/scm
子目录中。
Mononoke
Mononoke 是 Sapling SCM 的服务器端组件。
虽然它在 Meta 的生产环境中使用,但目前它不能在开源环境中构建,且尚未对外部使用提供支持。
EdenFS
EdenFS 是用于管理 Sapling 检出的虚拟文件系统。
虽然它在 Meta 的生产环境中使用,但目前它不能在开源环境中构建,且尚未对外部使用提供支持。
EdenFS 通过仅在需要时填充工作目录文件来加快大型仓库中的操作,正如它们被访问时那样。这使得 checkout
等操作变得更快,但第一次访问新文件时会有轻微的性能损失。这对于开发者在同一时间通常只与仓库的一小部分工作的大型仓库来说非常有用。
更详细的 EdenFS 设计文档可以在 eden/fs/docs/Overview.md 中找到。
构建 Sapling CLI
Sapling CLI 目前在 Linux、Mac 和 Windows 上构建和运行。您可以通过在 eden/scm
目录中运行 make oss
来构建它,然后运行生成的 sl
可执行文件。
构建 Sapling CLI 需要 Python 3.8、Rust、CMake 和 OpenSSL 用于主要的 CLI,以及 Node 和 Yarn 用于 ISL 网页 UI。
许可证
请参阅 LICENSE。
依赖关系
~130KB