LazySVN
NAME
lazysvn — a keyboard-driven terminal UI for Subversion
SYNOPSIS
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
-- commentare 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
svncommand-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# install script, into ~/.local/bin
$ curl -fsSL https://lazysvn.sawirstudio.com/install.sh | sh# Homebrew on Linux
$ brew install sawirstudio/tap/lazysvn# packages from the latest release (they recommend subversion)
$ sudo apt install ./lazysvn_0.4.1_amd64.deb$ sudo dnf install ./lazysvn-0.4.1-1.x86_64.rpm$ sudo apk add --allow-untrusted ./lazysvn_0.4.1_x86_64.apk# PowerShell, into %LOCALAPPDATA%\Programs\lazysvn (checksum-verified)
> irm https://lazysvn.sawirstudio.com/install.ps1 | iex# Scoop
> scoop bucket add sawirstudio https://github.com/sawirstudio/scoop-bucket> scoop install lazysvn# winget
> winget install SawirStudio.LazySVNThe winget listing is in Microsoft's review queue; until it's live, use PowerShell or Scoop. You also need an svn client such as SlikSVN, or TortoiseSVN with its command line tools.
# from source, with the Go toolchain
$ go install github.com/sawirstudio/lazysvn@latestThen 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.