Skip to content

Quick start

This walks the everyday loop: look at what changed, read a diff, stage it, commit it. It assumes revision is installed and you are standing in an SVN working copy.

Terminal window
cd /path/to/working-copy
revision

Or point it at a working copy from anywhere:

Terminal window
revision --path /path/to/working-copy
╭─ [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 Status panel names the working-copy root, the branch, and the revision you sit at against HEAD. The Files panel lists pending changes as a directory tree. The Log panel holds history, newest first. Main, on the right, shows detail for whatever is selected.

Focus a panel by number — 1 Status, 2 Files, 3 Log, 4 Command Log, 0 Main — or cycle with tab. Move the selection with / (or k / j), and page the Main panel with K / J.

For the pointer instead, turn on allowMouse — it is off by default.

The hint bar at the bottom always shows what the focused panel can do:

spacestagenchangelistccommitrrevertddelete[ ]view?help

Press ? at any time for the full keybindings menu, and q to quit.

Focus the Files panel with 2 and move onto a modified file. Main follows the selection and shows its diff — additions, deletions, hunk headers and metadata each tinted, with the +/- gutter pinned as you scroll.

Highlight a directory row instead and Main shows the combined diff of everything beneath it. Press enter on a directory to collapse or expand it.

For a longer look, s reopens the same diff side by side, and w saves it to a file.

Press space on a file to stage it. On a directory row, space stages every change beneath it; press it again to unstage them. An untracked file is svn added first.

Staged files move into the (staged) group. There is no SVN staging index — revision emulates one with a reserved changelist. See Staging & commit for what that means in practice.

Press c. An inline editor opens for the message:

╭─ [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                 ││                                              │
│               ╭─ Commit message ─────────────────────────────╮               │
╰───────────────│Fix status parsing                            │               │
╭─ [2] ─ Changes│                                              │               │
│  ▾ /          │                                              │               │
│>   ● M modifie│                                              │               │
│               │                                              │               │
│               │                                              │               │
│               │                                              │               │
╰───────────────│                                              │               │
╭─ [3] Log ─────│                                              │               │
│  Rev Author Me│ctrl+s submit · esc cancel                    │───────────────╯
│               ╰──────────────────────────────────────────────╯───────────────╮
│                              ││No svn commands run yet.                      │
│                              ││                                              │
│                              ││                                              │
│                              ││                                              │
╰──────────────────────────────╯╰──────────────────────────────────────────────╯
space stage · n changelist · c commit · r revert · d delete · [ ] view · ? help 

ctrl+s submits, esc cancels. The commit covers the staged set — or, if you are in the Changelists view with a list highlighted, that list alone.

u updates the working copy to HEAD. To move to a specific revision, focus the Log panel with 3, select the revision, and press space. Both confirm first and keep your uncommitted changes — see Updating the working copy.

Press R to re-read status and history at any time, and 4 to see the svn commands revision ran on your behalf.