Skip to content

Introduction

revision is a lazygit-style terminal UI for Subversion. It gives you a fast, keyboard-driven interface over the svn command line — review changes, stage with changelists, commit, update, and browse history without leaving your terminal.

╭─ [1] Status ─────────────────╮╭─ [0] Diff ───────────────────────────────────╮
│Root      /home/alice/work/wc ││changelist: (staged)                          │
│Source    /home/alice/work/wc ││                                              │
│CWD       /home/alice/work/wc ││Loading diff…                                 │
│Branch    trunk               ││                                              │
│Revision  r42                 ││                                              │
│HEAD      r50                 ││                                              │
╰──────────────────────────────╯│                                              │
╭─ [2] ─ Changes ─── Changelist╮│                                              │
│  ▾ /                         ││                                              │
│>   ● A added.txt             ││                                              │
│      M modified.go           ││                                              │
│      D gone.txt              ││                                              │
│                              ││                                              │
╰────────────────── 1 of 3 ────╯│                                              │
╭─ [3] Log ────────────────────╮│                                              │
│  Rev   Author Message        │╰──────────────────────────────────────────────╯
│    r50                       │╭─ [4] Command Log ────────────────────────────╮
│  * r42                       ││No svn commands run yet.                      │
│                              ││                                              │
│                              ││                                              │
│                              ││                                              │
╰────────────── 1 of 2 · 1 ────╯╰──────────────────────────────────────────────╯
space stage · n changelist · c commit · r revert · d delete · [ ] view · ? help 
The default layout: Status, Files and Log down the left, the Main detail view and Command Log on the right.

SVN’s command line is powerful but verbose for day-to-day work. revision wraps it in a focused TUI — inspired by lazygit — so common tasks are a keystroke away.

It is a front end, not a reimplementation. Every action shells out to the svn binary already on your PATH, so it respects your working copy, your cached credentials, and your existing SVN configuration. Nothing is cached behind your back, and anything revision runs on your behalf is listed in the Command Log panel.

Layout and navigation

  • A left column of Status, Files and Log panels beside a Main detail view, with a Command Log beneath it. Switch panels with the number keys or Tab, and scroll any panel on both axes.
  • Changed files as a collapsible directory tree, each change grouped under its folder.
  • A contextual hint bar at the bottom, plus a full ? help menu.
  • Optional mouse support: turn it on and the panels can be clicked and scrolled, with every gesture still on a key.
spacestagenchangelistccommitrrevertddelete[ ]view?help

Reviewing changes

  • A colour-coded diff viewer that follows your selection, with the +/- gutter pinned as you scroll. Highlight a directory for the combined diff of everything beneath it.
  • Side-by-side reading with s — each removal opposite the addition that replaced it, every line numbered in its own revision.
  • Save any diff on screen to a file with w, then browse the saved patches from the Files panel’s Diffs view.

Making changes

  • Staging through an SVN changelist, so a git-like stage-then-commit flow maps onto native SVN. Stage one file or a whole directory subtree with a single keystroke.
  • Named changelists — group the staged set in a tabbed view, drill into any list, and commit it as a unit.
  • Commit through an inline message editor; add, revert and delete with confirmation prompts before anything destructive.
  • Update to HEAD, or to any revision picked in the Log panel.

Finding things

  • A read-only log viewer with per-revision detail and an asterisk marking where the working copy sits.
  • Filter or search any panel with / — the list panels filter, the detail panels highlight matches in place.

Living with it