VGit

Documentation
Source

How VGit derives lanes, refs, diffs, and current files from Git.

Reading the graph and repository state

Lanes represent topology, not ownership

A commit does not belong permanently to one branch, so VGit computes lanes from parent relationships in the commit graph. Horizontal connectors show lane changes, merge commits receive a hollow inner dot, and rails expand rather than collapsing excess history.

Refs come from namespaces

Local branches, remote branches, lightweight tags, and peeled annotated tags are interpreted from Git ref namespaces. Branch filtering can narrow the visible history to as many as five refs, which keeps labels readable without changing repository state.

Git remains the source of truth

  • Change totals and diffs are read from Git rather than inferred from editor state.
  • Partially staged files have separate index and working-tree representations.
  • Untracked text is presented as additions.
  • Current source-tree files open in their own tabs independently of change diffs.

Preventing stale UI writes

Repository reads carry generation identities so an older background result cannot replace newer state. Mutations execute one at a time, refresh even after failure, reload open tabs, and follow the selected commit by object ID.