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日 |
#4 in #可扩展性
5,557 星 & 72 关注者
6KB
98 代码行数(不含注释)
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。
依赖关系
~5–12MB
~115K SLoC