Skip to content

History Graph

Available

The History Graph is a full DAG (directed acyclic graph) visualization of your project’s complete history across all timelines. It shows every snapshot, fork point, and merge commit in a single interactive view.

History graph History graph
The History Graph showing multiple timelines with fork and merge points

Click the History button in the Snapshots panel header. The graph opens as a dedicated tab — like Settings, it’s a singleton that you can keep open alongside your sketch editor.

Each circle in the graph represents a snapshot (saved version):

  • Filled circles — Regular snapshots
  • Nodes with a ring — The current HEAD position
  • Merge nodes — Snapshots with two incoming edges (created by merging timelines)

Each timeline gets its own colored lane:

  • Main is always the leftmost lane
  • Forks appear in additional lanes to the right
  • Colors are consistent with the timeline selector — the same color you see in the dropdown appears in the graph

Lines connecting nodes show parent-child relationships:

  • Straight vertical lines — Sequential snapshots on the same timeline
  • Diagonal lines — Fork points where a timeline branched off
  • Converging lines — Merge commits where timelines were combined
  • Branch tips show the timeline name as a badge (e.g., “Main”, “Experiment”)
  • Snapshot messages appear on hover or alongside nodes
  • Timestamps help orient you in the history

Clicking a snapshot node in the graph:

  1. Switches to that timeline (if you’re on a different one)
  2. Navigates to that snapshot in the linear view
  3. Shows the snapshot’s details (message, date, files changed)

The graph supports two orientations:

  • Vertical (default) — Time flows top-to-bottom, most recent at top
  • Horizontal — Time flows left-to-right

Both orientations show the same information; choose whichever feels more natural for your workflow.

When viewing the linear snapshot list for a specific timeline, the graph shows ancestry — snapshots inherited from the parent timeline appear in the parent’s color. This helps you understand where a fork originated and how much history it shares with other timelines.

When a remote is configured, the History Graph shows remote state:

  • Remote branch labels appear alongside local ones (e.g., “origin/main”)
  • Divergence is visible — local-only snapshots appear beyond the remote marker
  • Incoming snapshots (after fetch) appear as distinct nodes

See Remote Sync for details on configuring a remote.

  • The graph is rendered as SVG using a custom layout engine
  • Layout uses topological sorting with lane assignment per timeline
  • Merge edges are drawn as smooth curves between lanes
  • The graph recomputes on save, merge, or timeline switch
  • Performance is optimized for projects with hundreds of snapshots