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日

#954 in 开发工具

5,557 星 & 72 关注者

17KB
330

Sapling SCM

Sapling SCM 是一个跨平台、高度可扩展、兼容 Git 的源代码控制系统。

它的目标是提供既用户友好又功能强大的界面,以及处理包含数百万个文件和数百万个提交的存储库的极端可扩展性。

使用 Sapling

要开始使用 Sapling,请参阅 入门 页面了解如何克隆现有的 Git 仓库。查看 概述 了解各种功能。来自 Git?查看 Git 快捷指南

小树苗还提供了一个交互式智能日志(ISL)网络用户界面,用于查看和交互您的仓库,以及VS Code集成的交互式智能日志。

小树苗生态系统

小树苗版本控制系统由三个主要组件组成

  • 小树苗客户端:用户与小树苗版本控制系统交互的客户端sl命令行和Web界面。
  • Mononoke:一个高度可扩展的分布式源代码控制系统。(目前尚未公开支持。)
  • EdenFS:一个用于高效检出大型仓库的虚拟文件系统。(目前尚未公开支持。)

小树苗版本控制系统的可扩展性目标是确保所有版本控制操作都随着开发人员使用的文件数量而扩展,而不是随着仓库本身的大小而扩展。这使得即使在包含数百万个文件和极长的提交历史记录的巨大仓库中,也能实现快速、高效的开发者体验。

小树苗CLI

小树苗CLI,sl,最初基于Mercurial,并与Mercurial共享UI和功能的各个方面。

CLI代码位于eden/scm子目录中。

Mononoke

Mononoke是小树苗版本控制系统的服务器端组件。

虽然它在Meta的生产环境中使用,但目前它不在开源环境中构建,并且尚未对外部使用提供支持。

EdenFS

EdenFS是一个用于管理小树苗检出的虚拟文件系统。

虽然它在Meta的生产环境中使用,但目前它不在开源环境中构建,并且尚未对外部使用提供支持。

EdenFS通过仅在访问时填充工作目录文件来加速大型仓库的操作。这使得像checkout这样的操作变得更快,但第一次访问新文件时会有轻微的性能损失。这对于开发人员通常一次只与仓库的一小部分工作的大型仓库来说非常有益。

更详细的EdenFS设计文档可以在eden/fs/docs/Overview.md中找到。

构建小树苗CLI

小树苗CLI目前在Linux、Mac和Windows上构建和运行。您可以在eden/scm目录中运行make oss来构建它,并运行生成的sl可执行文件。

构建小树苗CLI需要Python 3.8、Rust、CMake和OpenSSL作为主CLI,以及Node和Yarn作为ISL Web UI。

许可

请参阅LICENSE

依赖项

~0.3–0.9MB
~12K SLoC