3 个版本
0.1.2 | 2020年9月4日 |
---|---|
0.1.1 | 2020年8月31日 |
0.1.0 | 2020年8月29日 |
#2009 in 开发工具
每月下载量 32
用于 gitrevset
1MB
18K 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 Web UI)。
许可
请参阅LICENSE。
依赖关系
~17–29MB
~487K SLoC