Sapling is a scalable version control system designed to handle repositories with millions of files and commits, making it suitable for large monorepos. It reads and writes Git repositories natively, maintaining full interoperability with Git remotes and standard workflows, and provides an interactive commit graph for exploring repository history and state.
The system uses a bookmark-based branching model that eliminates named branches in favor of lightweight, movable labels for commits. It tracks how each commit was created, amended, rebased, or split through commit-graph-based mutation tracking, automatically rebasing dependent commits. Sapling organizes dependent changes into stacks with dedicated commands to create, navigate, edit, and submit them as GitHub pull requests, and provides a web-based commit graph GUI for visual repository exploration.
The tool includes on-demand data fetching and file checkout to speed up large repository operations, sparse checkout with team-shared inclusion and exclusion profiles, and cryptographic commit signing using GPG, SSH, or X.509 backends. It offers IDE integration through extensions for Visual Studio and VS Code, and provides configuration management, logging verbosity controls, and a development environment setup for contributors.