Panels, not commands
Status, Files and Log down the left, a Main detail view beside them and the svn Command Log beneath. Switch with the number keys or tab. The panels
curl -fsSL https://raw.githubusercontent.com/bapatchirag/revision/main/install.sh | shGrabs the latest release build for your platform (see Installation). You need the svn client
on your PATH.
Panels, not commands
Status, Files and Log down the left, a Main detail view beside them and the svn Command Log beneath. Switch with the number keys or tab. The panels
Staging that SVN understands
space stages a file or a whole directory subtree into a changelist — a git-index-like
workflow, built out of plain svn changelist. Staging & commit
Named changelists
Group the staged set into named lists, drill into any of them in a tabbed view, and commit one as a unit. Changelists
Diffs you can work in
Additions, deletions and hunk headers each tinted. Search in place, read it side by side with s, or write it to a file with w. Working with diffs
Filter anything
/ filters the focused panel, with rev:, user:, state: and cl: parameters for
the ones that support them. Filtering & searching
Update without surprises
Update to HEAD or to any revision picked out of the Log panel. Conflicts are spelled out before you confirm. Updating the working copy
Resolve it side by side
m lays a conflict — or a hunk a patch could not place — out two panes wide, with a key to take either side, both, or your editor. Resolving conflicts
Open it in your editor
Hand the selected file to vim, nvim, nano, or VS Code — which opens the real file in the window you are already in. Opening files in an editor
Themes and settings, in app
Six colour schemes and an in-app settings editor, written back to your config file. Themes · Configuration
These are the app’s own rendered output, read straight from its golden tests — selectable text, not screenshots.
╭─ [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
╭─ [1] Status ─────────────────╮╭─ [0] Diff ───────────────────────────────────╮
│Root /home/alice/work/wc ││Index: src/a.go ┃│
│S╭─ Side-by-side diff — src/a.go ───────────────────────────────────────────╮┃│
│C│revision 42 │working copy │┃│
│B│────────────────────────────────────┼─────────────────────────────────────│┃│
│R│@@ -1,5 +1,6 @@ │┃│
│ │ 1 package main │ 1 package main │┃│
╰─│ 2 │ 2 │┃│
╭─│ 3 -import "fmt" │ 3 +import ( │┃│
│ │ │ 4 + "fmt" │┃│
│ │ │ 5 +) │┃│
│>│ 4 │ 6 │││
│ │ 5 func main() { │ 7 func main() { │││
│ │@@ -20,3 +21,2 @@ │││
╰─│ 20 done() │ 21 done() │││
╭─│ 21 - cleanup() │ │ │
│ │ 22 } │ 22 } │─╯
│ │ │ │─╮
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ ╰────────────────────────── src/a.go · 1-12 of 12 · e edit · esc close ────╯ │
╰──────────────────────────────╯╰──────────────────────────────────────────────╯
space stage · n changelist · c commit · r revert · d delete · [ ] view · ? help ╭─ [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 ││ │ │ ││ │ ╰──────────────────────────────╯│ │ ╭─ [2] ─ Changes ─── Changelist╮│ │ │> ◆ feature-x (1) ││ │ │ ◆ (staged) (1) ││ │ │ ◆ (unstaged) (1) ││ │ │ ││ │ │ ││ │ ╰────────────────── 1 of 3 ────╯│ │ ╭─ [3] Log ────────────────────╮│ │ │ Rev Author Message │╰──────────────────────────────────────────────╯ │ │╭─ [4] Command Log ────────────────────────────╮ │ ││No svn commands run yet. │ │ ││ │ │ ││ │ │ ││ │ ╰──────────────────────────────╯╰──────────────────────────────────────────────╯ space stage · n changelist · c commit · r revert · d delete · [ ] view · ? help
╭─ [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
╭─ [1] Status ─────────────────╮╭─ [0] Diff ───────────────────────────────────╮ │Root /home/alice/work/wc ││Loading diff… │ │Source ╭─ Keybindings ────────────────────────────────────────────────╮ │ │CWD │Changes Navigation │ │ │Branch │ Stage / unstage space Jump to panel 1 2 3 4 0│ │ │Revisio│ Assign changelist n Cycle panels tab / shift+tab│ │ │ │ Commit staged / list c Move up / down k / j│ │ ╰───────│ Expand changelist enter Jump top / bottom g / G│ │ ╭─ [2] ─│ Revert / delete file r / d Next / prev history pa n / p│ │ │ ▾ / │ Apply saved patch p Scroll main up / down K / J│ │ │> M│ Resolve conflict m Scroll main l / r h / l│ │ │ │Working copy Line start / end home / end│ │ │ │ Update working copy u Filter panel /│ │ │ │ Update to rev (Log) space View │ │ ╰───────│ Open file in editor e Switch file view [ / ]│ │ ╭─ [3] L│ Change source path P Side-by-side / save s / w│ │ │ Rev A│ Switch repository W Dir diff / untracked D / U│───────╯ │ │ Refresh / settings R / S Toggle command log x│───────╮ │ │ Toggle live refresh L General │ │ │ │ Toggle help ?│ │ │ │ Quit q│ │ │ ╰──────────────────────────────────────────────────────────────╯ │ ╰──────────────────────────────╯╰──────────────────────────────────────────────╯ space stage · n changelist · c commit · r revert · d delete · [ ] view · ? help
revision is, and what it is not.svn or your keys get in the way.revision is MIT-licensed and built in the open on
GitHub — issues
and releases.