DrawDag provides an intuitive way to create commit graph for tests.
IndexedLog is the main on-disk storage format used by various components in
📄️ Internal differences from Mercurial
This page assumes that you are familiar with Mercurial internals.
LineLog is an implementation of interleaved deltas.
MetaLog is used to track lightweight repo metadata like bookmarks, remote
📄️ Visibility and mutation
The way Sapling tracks which commits are visible to an individual developer, and how it tracks the ways in which commits have been mutated, differs from other source control systems. Designing a system to allow mutations of the otherwise immutable commit graph brings its own scaling challenges. This document describes the way these have been addressed in Sapling.
ZstDelta uses zstd dictionary compression to calculate