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日 |
#469 in 编码
5,557 星 & 72 关注者
12KB
210 行
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。
lib.rs
:
VLQ(可变长度量)编码。