Sapling SCM は、クロスプラットフォームで拡張性の高い、Git 互換のソース管理システムです。
ユーザーにとって使いやすく強力なインターフェイスと、数百万のファイルと数百万のコミットを含むリポジトリを処理するための優れたスケーラビリティの両方を提供することを目的としています。
Sapling の使用を開始するには、「はじめに」ページで既存の Git リポジトリのクローンを作成する方法を参照してください。概要をチェックして、さまざまな機能を確認してください。 Git から来たのですか? Git チートシートを確認してください。
Sapling には、リポジトリを表示および操作するための Interactive Smartlog (ISL) Web UI と、VS Code に統合された Interactive Smartlog も付属しています。
Sapling SCM は 3 つの主要コンポーネントで構成されます。
sl
コマンド ラインおよび Web インターフェイス。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 に基づいてライセンスされています。
Web サイトと ISL は MIT の下でライセンスを取得しています。
ミニバイトなどのライブラリ サブプロジェクトには、異なるライセンスが適用される場合があります。詳細については、 LICENSE
ファイルと各ライブラリのソース コード ヘッダーを参照してください。