#cloud-events #commit #server-sent-events #subscriber #subscription #repository #cross-platform

facebookexperimental/commitcloudsubscriber

跨平台客户端,用于订阅提交云事件源(http服务器端事件)。工作流程如下:* 将“订阅”定义为唯一的[repo_name, workspace]对* 读取“订阅者”集合,定义为[repo_name, workspace, repo_root]* 为每个“订阅”(以及一组“订阅者”(repo_roots))运行一个提交云事件源监听器,在一个独立的线程中* 在给定的“订阅”的所有“订阅者”(repo_roots)的通知上触发hg cloud sync命令* 该库还包含一个模块来查找OAuth令牌,此逻辑应与hg cloud auth命令保持同步

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