Sapling SCM 是一個跨平台、高度可擴展、與 Git 相容的源代碼控制系統。
它旨在為用戶提供用戶友好且功能強大的介面,以及極高的可擴展性來處理包含數百萬個文件和數百萬個提交的存儲庫。
要開始使用 Sapling,請參閱入門頁面,以了解如何複製現有的 Git 儲存庫。查看概述以了解各種功能。來自 Git?查看 Git 備忘單。
Sapling 還配備了互動式智慧日誌 (ISL) Web UI,用於查看儲存庫並與之交互,以及 VS Code 整合的互動式智慧日誌。
Sapling SCM 由三個主要組件組成:
sl
命令列和 Web 介面,供使用者與 Sapling SCM 互動。Sapling SCM 的可擴展性目標是確保所有原始碼控制操作隨著開發人員使用的檔案數量而擴展,而不是隨著儲存庫本身的大小而擴展。即使在具有數百萬個文件和極長提交歷史記錄的大型儲存庫中,這也能實現快速、高效能的開發人員體驗。
Sapling CLI sl
最初是基於 Mercurial,並分享 Mercurial UI 和功能的各個方面。
CLI 程式碼可以在eden/scm
子目錄中找到。
Mononoke 是 Sapling SCM 的伺服器端元件。
雖然它在 Meta 的生產中使用,但尚不支援外部使用。 GitHub Actions 中的 OSS 建置可用於不支援的實驗。
EdenFS 是一個用於管理 Sapling 結帳的虛擬檔案系統。
雖然它在 Meta 的生產中使用,但尚不支援外部使用。 GitHub Actions 中的 OSS 建置可用於不支援的實驗。
EdenFS 僅在存取時按需填充工作目錄文件,從而加快大型儲存庫中的操作速度。這使得諸如checkout
類的操作變得更快,但在首次存取新文件時,效能會受到一點影響。這在大型儲存庫中非常有用,因為開發人員通常一次只使用儲存庫的一小部分。
更詳細的 EdenFS 設計文件可以在 eden/fs/docs/Overview.md 中找到。
Sapling CLI 目前在 Linux、Mac 和 Windows 上建置和運行。它可以透過在eden/scm
目錄中運行make oss
並運行生成的sl
可執行檔來建置。
建置 Sapling CLI 需要用於主 cli 的 Python 3.8、Rust、CMake 和 OpenSSL,以及用於 ISL Web UI 的 Node 和 Yarn。
您可以在 GitHub 上回報問題或加入 Discord
主要項目已獲得 GPL-2.0 許可。
該網站和 ISL 已獲得 MIT 許可。
庫子項目(例如 minibytes)可能具有不同的許可證。有關詳細信息,請參閱每個庫中的LICENSE
文件和原始碼標頭。