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日 |
#165 in HTTP客户端
5,557 stars & 72 watchers
44KB
896 行
Sapling SCM
Sapling SCM是一个跨平台、高度可扩展、兼容Git的源代码控制系统。
旨在为用户提供既友好又强大的界面,同时提供极高的可扩展性,以处理包含数百万文件和数百万次提交的仓库。
使用Sapling
要开始使用Sapling,请参阅入门页面,了解如何克隆现有的Git仓库。查看概述以了解各种功能。来自Git?请查看Git速查表。
Sapling还提供了一个交互式智能日志(ISL) Web UI,用于查看和交互仓库,以及VS Code集成的交互式智能日志。
Sapling生态系统
Sapling SCM由三个主要组件组成
- Sapling客户端:用户与Sapling SCM交互的客户端
sl
命令行和Web界面。 - 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。
依赖项
~10-24MB
~368K SLoC