#vlq #source #variable-length #control-system #scalable #user-friendly

facebookexperimental/vlqencoding

可扩展、用户友好的源代码控制系统

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 关注者

MIT 许可证

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(可变长度量)编码。

无运行时依赖