The panels
The screen is a left column of Status, Files and Log, beside a Main detail view with a Command Log beneath it.
╭─ [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
Each panel carries its number in the top border — [2] Files — and the focused one is
drawn in the accent colour. The frame also carries a position and count in the bottom
border (1 of 3) where a count makes sense.
| Panel | Key | What it shows |
|---|---|---|
| Status | 1 | The working-copy root, the source path revision is operating on, the current directory, the branch, and the checked-out revision against HEAD. |
| Files | 2 | Pending changes, as a directory tree, grouped by changelist, or as saved patches. |
| Log | 3 | Revision history, newest first. An asterisk marks the revision the working copy sits at. |
| Command Log | 4 | The svn actions revision has run on your behalf, newest first, each marked ✓ or ✗. |
| Main | 0 | Detail for whatever is selected: a diff for a file or directory, metadata and changed paths for a revision. |
Moving between panels
Section titled “Moving between panels”- 1 … 4, 0 — focus a panel directly.
- tab / shift+tab — cycle forwards and backwards.
- x — show or hide the Command Log.
With allowMouse on, clicking a panel focuses it.
Moving inside a panel
Section titled “Moving inside a panel”Every panel scrolls on both axes, with scrollbars that show how much is off-screen. With the mouse on, the wheel scrolls whichever panel the pointer rests on, focused or not.
| Keys | Action |
|---|---|
| ↑k · ↓j | Move the selection up / down |
| g · G | Jump to the top / bottom of a list |
| K · J | Scroll the Main panel up / down a page |
| ←h · →l | Scroll the focused panel one column left / right |
| Home^ · End$ | Jump to the start / end of the line |
Status
Section titled “Status”Six rows, any of which is omitted when it has no value:
| Row | Meaning |
|---|---|
Root |
The working copy’s root directory. W moves to another one for the session. |
Source |
The directory the views are scoped to — the same as Root when displayFrom is root. P moves it for the session. |
CWD |
The directory revision was started in. |
Branch |
Derived from the repository URL: trunk, branches/<name> or tags/<name>. Blank when the repository does not follow that layout. |
Revision |
The revision the working copy sits at. |
HEAD |
The repository’s latest revision, when it differs from Revision. |
Focusing the Status panel puts project links and version information in Main:
╭─ [1] Status ─────────────────────────╮╭─ [0] About ──────────────────────────────────────────────╮ │Root /home/alice/work/wc ││ _ _ │ │Source /home/alice/work/wc ││ _ _ _____ _(_)__(_)___ _ _ │ │CWD /home/alice/work/wc ││| '_/ -_) V / (_-< / _ \ ' \ │ │Branch trunk ││|_| \___|\_/|_/__/_\___/_||_| │ │Revision r42 ││ │ │ ││MIT © Chirag Bapat │ ╰──────────────────────────────────────╯│ │ ╭─ [2] ─ Changes ─── Changelists ─── Di╮│Documentation │ │ ▾ / ││ https://bapatchirag.github.io/revision/ │ │ M modified.go ││ │ │ ││Report an issue │ │ ││ https://github.com/bapatchirag/revision/issues │ │ ││ │ │ ││Release notes │ │ ││ https://github.com/bapatchirag/revision/releases │ │ ││ │ ╰────────────────────────── 1 of 1 ────╯│Press S to review the active settings and any overrides. │ ╭─ [3] Log ────────────────────────────╮│ │ │ Rev Author Message ││ │ │ ││ │ │ │╰──────────────────────────────────────────────────────────╯ │ │╭─ [4] Command Log ────────────────────────────────────────╮ │ ││No svn commands run yet. │ │ ││ │ │ ││ │ │ ││ │ │ ││ │ ╰──────────────────────────────────────╯╰──────────────────────────────────────────────────────────╯ / search · P source path · W repository · ? help
Changing the source path
Section titled “Changing the source path”P moves Source anywhere inside Root for the rest of the session. The
prompt opens on the directory revision is reading now and lists what is under it: typing
narrows the list, tab steps into it and back, and the parent directory
leads it so the list walks up as well as down. The working copy’s root is fixed at the head
of the input — it cannot be deleted, and a path above it is refused — so the source never
leaves the checkout.
Everything is re-read for the new source — the trees, the history and the cached diffs are
dropped and fetched again — so the panels show that subtree and nothing else. The change is
never written to the config file; the next launch uses --path
again.
Switching repositories
Section titled “Switching repositories”P stays inside Root; W leaves it. The prompt lists the
working copies it can find in the directory revision was started in, in the checkout it
is reading, and in that checkout’s parents a few levels up — so a sibling of your tree is
offered as readily as something inside it. They arrive nearest first, typing narrows the
list, and tab steps into it and back.
Any checkout the search did not reach is opened by typing its path in full. ~ expands,
and a relative path is taken from the current source. The path is checked before anything
moves: if it is not a directory, or if svn does not recognise it as a working copy, the
switch is refused, the reason is shown, and the prompt reopens on what you typed so it can
be corrected.
A switch re-reads everything, exactly as changing the source path does, and it too lasts for the session only.
The Files panel has four views. [ and ] turn between them, and the active one is named in the top border — where all four can be clicked, with the mouse on.
Changes
Section titled “Changes”Pending changes as a collapsible directory tree, each change grouped under its folder.
enter expands or collapses a directory. Each row is a marker, the SVN
status code (A, M, D, ? …) and the file name. A green ● marks a staged file and
a cyan ● a file in a named changelist; an unstaged file has no
marker.
The footer counts the position and the number of files in view. When a
filter or
hideUntracked hides some, the full count
follows in brackets — 1 of 16 (29).
A row waiting on a revert, a delete or a commit is dimmed and tailed with …, and the
directories above it carry the count of what is in flight beneath them. Those rows are
inert until svn answers — see rows in
flight.
A conflicted file (C) is resolved with m, which opens its conflicts
side by side.
Changelists
Section titled “Changelists”The same changes bucketed by changelist: named lists first,
then (staged), then (unstaged).
╭─ [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
enter drills into a list, which then owns the panel — the border names it and esc goes back.
Patches you have saved with w, newest first, read
from diffOutputDir. Selecting one shows it in
Main; e opens it in your editor,
p applies it to the working
copy, and d deletes it from the store.
The rows are files, not working-copy changes: stage and revert do nothing here.
Rejects
Section titled “Rejects”The .rej files left behind by a patch, found by walking the source
path recursively and laid out as the same tree as
Changes — enter expands and collapses a directory. svn ignores rejects,
so this is the only view that shows them. Selecting one shows its contents in Main;
m resolves it against the file it was written
for, e opens it in your editor and
d deletes it from disk. See
Finding rejects.
Revision history, newest first, a page at a time. Each row carries the full revision number, the author, and the first line of the message. An asterisk marks where the working copy sits.
Selecting a revision shows its date, full message and changed paths in Main. space updates the working copy to the selected revision.
A page holds logLimit revisions — 100 by default.
n loads the next page and p the previous one. The footer
shows where the cursor sits within the page and which page you are on, so 12 of 100 · 3
is the twelfth revision of the third page.
Filtering with / searches the page on screen, not the whole history; the filter stays applied as you turn pages. Committing returns the panel to the first page, so the new revision is in view.
Command Log
Section titled “Command Log”Every svn command revision ran on your behalf, newest first, each marked ✓ or ✗.
Read-only queries — the status and log refreshes that happen constantly, including the
background ones — are left out, so the list stays a record of what actually changed.
Toggle the panel with x.
Detail for the current selection, and the target of the search, side-by-side and save-diff actions.
| Selection | Main shows |
|---|---|
| A file | Its diff, colour-coded. |
| A directory | The combined diff of every change beneath it, when directoryDiff is on. |
| A changelist | The combined diff of its members. |
| A saved patch | The patch file’s contents. |
| A revision | Date, author, full message, and changed paths. |
| The Status panel | Project links and version information. |
A diff is fetched once and reused for the rest of the session, so stepping back to a file
you have already read costs no svn at all.
Keeping up with the working copy
Section titled “Keeping up with the working copy”revision watches the working copy in the background, so a file saved in your editor, a
build, or an svn command run in another terminal reaches the Files panel and the diff on
screen within a couple of seconds. The cursor stays on the same file and Main keeps its
scroll position — a refresh you did not ask for never moves the screen under you.
Nothing is re-read while a prompt, the commit editor, the settings form, the help menu or the side-by-side overlay owns the screen. The refresh is held and taken once the screen is free, so closing a dialog costs exactly one reload.
L turns the watcher off and on for the session;
liveRefresh sets the default.
R still re-reads status and history on demand, whether the watcher is
running or not.