LazySVN

NAME

lazysvn — a keyboard-driven terminal UI for Subversion

SYNOPSIS

lazysvn                  # run inside an svn working copy
lazysvn update [tag]     # self-update (curl / PowerShell installs)
lazysvn uninstall
lazysvn --version
$ curl -fsSL https://lazysvn.sawirstudio.com/install.sh | sh

Latest release: v0.4.1 · other platforms under INSTALL

DEMO

This is the real interface, running in your browser on a fake working copy. Click it and use the keys: j/k to move, space to mark, d for a diff, v to revert, c to commit.

DESCRIPTION

lazysvn puts a Subversion working copy on one screen: the changed files on the left, a diff or log on the right, and every action a single key away. It drives your existing svn client, so it works with any repository you can already reach.

  • Status that understands svn. Reads svn status --xml, so changelists, externals and tree conflicts show up as what they are.
  • Side-by-side diffs that follow the cursor. Narrow terminals get a unified diff instead. Property changes and lines like -- comment are parsed correctly.
  • Logs. The last 20 log entries for any file, one key away.
  • Batch actions. Mark files with space, then commit, add or revert them together. Revert lists every path it will touch before you confirm.
  • Safe by construction. One working-copy-changing command runs at a time, so lazysvn never races svn for its lock or shows a stale list.
  • One small binary. Linux, macOS and Windows on amd64 and arm64. The only thing it needs is the svn command-line client.

KEYS

j k ↑ ↓
move
g G
top / bottom
space
mark / unmark file
esc
clear all marks
d enter
diff the selected file (follows the cursor)
l
recent log (20 entries) for the selected file
c
commit marked files, or the current one
a
svn add marked/current unversioned (?) files
v
revert marked/current files (lists them first)
u
svn update
r
refresh status
h ?
help
q ctrl+c
quit

INSTALL

# Homebrew (pulls in Subversion if you don't have it)

$ brew install sawirstudio/tap/lazysvn

# or the install script, into ~/.local/bin

$ curl -fsSL https://lazysvn.sawirstudio.com/install.sh | sh

Then cd into any svn working copy and run lazysvn. Prebuilt archives and checksums.txt for every platform are on the releases page.

SEE ALSO

svn(1), lazygit(1) — the TUI that inspired this one.

source · bugs · releases