Skip to main content
Branches and snapshots let multiple jobs start from shared data without changing the same filesystem state. A volume snapshot forked into isolated writable branches, each with its own saved result

Branch

A branch is an isolated writable fork within a volume. Address it as volume@branch:
The first mount creates a missing branch from the volume’s current state. You can instead fork from another branch with --from, or from a saved snapshot with --from-snapshot. Changes on a branch do not change the volume or sibling branches.

Snapshot

A snapshot records an immutable version of a volume or branch:
Mount the snapshot to inspect it read-only, or use it as the starting point for a new writable branch.

A common workflow

  1. Prepare shared input data on the volume.
  2. Save a named baseline snapshot.
  3. Create one branch per job from that snapshot.
  4. Write each job’s output to its branch.
  5. Snapshot any result that must remain reproducible.
Follow Work with branches and Restore from a snapshot for the complete commands.