Skip to content

Keybindings

The hint bar shows the most common actions for the focused panel, and ? opens the full menu at any time.

spacestageaaddnchangelistccommitrrevertddelete[ ]view?help

The table below is generated from the same Go table the ? overlay renders, so the two can never disagree. Filter it by action, key or description, or narrow it to a single section — press / to jump to the filter.

Changes

ActionKeysWhereWhat it does
Stage / unstagespaceFilesStage or unstage the selected file, or every change under the selected directory. An untracked file is svn added first.
Add to version controlaFilesPut the selection under version control with svn add. On a file row it adds that file, on a directory row everything untracked beneath it, and an untracked directory is added with its whole contents, since that is how svn add reads one. Anything already versioned, and anything ignored, is left alone. The rows restyle on the keypress and go back if svn refuses them; r undoes an add, leaving the file on disk and untracked again.
Assign changelistnFilesAssign the staged set — or just the selected file when nothing is staged — to a named changelist.
Commit staged / listcFilesCommit the staged files, or the selected changelist.
Expand changelistenterFilesExpand or collapse the selected directory, or drill into a changelist.
Revert / delete filerdFilesRevert or delete the selected file, or everything under the selected directory. In the Diffs view d deletes the highlighted patch file from diffOutputDir instead. All ask for confirmation.
Apply saved patchpDiffsApply the patch file highlighted in the Diffs view to the source path, after asking for confirmation. A patch taken from another directory — one whose files are not the ones here — is refused, as is one svn says would land nothing at all. A patch that only partly fits is applied for what it is worth, with the hunks svn could not place written out beside their targets as .rej files.
Resolve conflictmFilesResolve the selection side by side. Which view you are in decides what it resolves, and the two are never mixed: in the Changes view (or an expanded changelist) it reads the conflict markers in the selected C file, and in the Rejects view it reads the selected .rej against the file it was written for. A patch that leaves a file both conflicted and with a reject beside it is therefore two pieces of work, one in each view. Each conflict, or each rejected hunk that still fits, is a page: 1 takes the left side, 2 the right, 3 both and 0 clears the choice. Once every page has been decided, w writes the file back out and clears what marked it — svn resolve for a conflict, removing the reject for a reject. e opens the file in your editor to merge it by hand instead.

Shelf

ActionKeysWhereWhat it does
Pick / shelvevzFilesHold the selection for the next shelve, or take what is held out of the working copy. v works on a file, on a directory — everything shelvable beneath it — and on a changelist row, so changes already filed under one are shelved without drilling in; pressed again it lets them go, as does esc. A pick is held by path rather than by row, so it survives a reload, a filter and a rebuild. z opens a prompt for a name and then takes what is held; with nothing held it means the whole working copy, and asks first.
Apply / popenterpShelfMerge the highlighted entry back into the working copy. enter leaves it on the shelf, p takes it off — but only when the whole of it went back, since while a hunk is sitting in a .rej or an unversioned file could not be placed, the shelf is the only remaining copy of what did not make it. Both ask first, and say so when the entry was shelved at a revision the working copy has since moved off.
Drop / renamednShelfDelete the highlighted entry, after asking — nothing else has a copy of what it holds — or relabel it, from a prompt that opens on the name it has now.

Working copy

ActionKeysWhereWhat it does
Update working copyuGlobalUpdate the working copy to the latest revision.
Update to revspaceLogUpdate the working copy to the selected revision.
Open file in editoreFilesOpen the highlighted file in the configured editor, positioned on its first changed hunk. Pressed with the Diff panel focused it opens on the line under the cursor instead, so the editor picks up where the eye left off — which is also how a file is picked out of a directory's combined diff. It works from the side-by-side and resolution overlays too, on the file whose page is open.
Change source pathPGlobalRe-scope revision to another directory inside the working copy, browsing to it from a prompt that opens on the directory it is reading now. The working copy's root is fixed, and the new source lasts for the session only — it is never saved.
Switch repositoryWGlobalMove revision to another working copy altogether. The prompt opens at once and the checkouts it finds fill in behind it, so a slow filesystem never holds up the keystroke; typing narrows the list. It looks 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 the current tree is offered as readily as something inside it — nearest first. The search stops at each checkout it finds, since everything under one belongs to it, and gives up after a few seconds rather than walking a large tree to the end; anything it did not reach is opened by typing its path in full. A path that is not an SVN working copy is refused and nothing changes. The switch lasts for the session only.
Refresh / settingsRSGlobalRefresh status and history, or open the settings editor.
Toggle live refreshLGlobalTurn background watching of the working copy on or off. While it is on, a change made outside revision reaches the Files and diff panels on its own. The toggle lasts for the session only; liveRefresh sets the default.
ActionKeysWhereWhat it does
Jump to panel12340GlobalFocus the Status, Files, Log, Shelf or Main panel. The Command Log has no number: x shows it and a click focuses it.
Cycle panelstabshift+tabGlobalMove focus to the next or previous side panel — Status, Files, Log, Shelf. Main and the Command Log are outside the cycle, so tab pressed on either returns to the side panel driving Main.
Move up / downkjAny panelMove the selection up or down. ↑ and ↓ work too.
Jump top / bottomgGAny panelJump to the first or last row.
Next / prev history pagenpLogLoad the next or previous page of revision history. A page holds logLimit revisions.
Scroll main up / downKJMainScroll the Main panel up or down a page.
Scroll main l / rhlMainScroll the focused panel one column left or right. ← and → work too.
Line start / endhomeendAny panelJump to the start or end of the line. ^ and $ work too.
Filter panel/Any panelFilter the Files or Log panel, or search within Main or Status.

View

ActionKeysWhereWhat it does
Switch file view[]FilesTurn the Files panel between the Changes, Changelists, Diffs and Rejects views.
Side-by-side / saveswMainOpen the diff on screen side by side in an overlay, or save it to a file in diffOutputDir. w saves a range of history too, down to the single file the drilled-in tree points at; that patch has already been read, so it is written as it stands rather than asked of svn a second time.
Pick revisionsvLogPick the selected revision to be diffed, or unpick it. Two can be held at once, and picking a third drops whichever was picked first, so the far end of a comparison can be moved without unpicking it each time. esc lets them go. A pick is held by revision rather than by row, so it survives paging and filtering — the two ends need not be on the same page.
Diff picked revisionsenterLogDiff whatever is picked, and open the files it touched as a tree in place of the revisions. One revision on its own is compared with the one before it, so what that commit changed is what you see. Two are compared with each other as they stand: the diff runs from the older to the newer, which is the state at one against the state at the other rather than the sum of the commits between them — the older revision's own change is already on the left-hand side and is not part of it. The tree reads like the Changes view: a file shows its own patch, a directory everything beneath it, and enter folds a directory away. It covers the directory displayFrom roots the views at. esc comes back out to the revisions, leaving the picks held for another look.
Dir diff / untrackedDUFilesToggle the directory-level diff for the highlighted directory, or toggle hiding untracked files.
Toggle command logxGlobalShow or hide the Command Log panel. It sits outside the panel cycle and has no number, so clicking it is the only way to focus and scroll it.

General

ActionKeysWhereWhat it does
Toggle help?GlobalOpen or close this keybindings reference.
QuitqGlobalQuit revision. ctrl+c works too.

Modal contexts, which the menu above does not cover.

Context Keys
Commit editor, settings form ctrl+s submits, esc cancels. With the mouse on, a settings row is clicked to move to it and double-clicked to change it
Changelist-name prompt tab toggles between typing a new name and picking an existing changelist
Confirmation dialog enter or y confirms, esc or n cancels
Side-by-side overlay [ / ] turn between files, e opens the file on the open page in your editor, s or esc closes
Filter input enter keeps the query, esc clears it
Main / Status with an active search n / N walk to the next / previous match
╭─ [1] S╭─ Keybindings ────────────────────────────────────────────────╮───────╮
│Root   │Changes                         Navigation                    │       │
│Source │  Stage / unstage        space    Jump to panel      1 2 3 4 0│       │
│CWD    │  Add to version control     a    Cycle panels tab / shift+tab│       │
│Branch │  Assign changelist          n    Move up / down         k / j│       │
│Revisio│  Commit staged / list       c    Jump top / bottom      g / G│       │
│       │  Expand changelist      enter    Next / prev history pa n / p│       │
╰───────│  Revert / delete file   r / d    Scroll main up / down  K / J│       │
╭─ [2] ─│  Apply saved patch          p    Scroll main l / r      h / l│       │
│   ▾ / │  Resolve conflict           m    Line start / end  home / end│       │
│>      │Shelf                             Filter panel               /│       │
│       │  Pick / shelve          v / z  View                          │       │
│       │  Apply / pop        enter / p    Switch file view       [ / ]│       │
╰───────│  Drop / rename          d / n    Side-by-side / save    s / w│       │
╭─ [3] L│Working copy                      Pick revisions             v│       │
│  Rev A│  Update working copy        u    Diff picked revisions  enter│       │
│       │  Update to rev (Log)    space    Dir diff / untracked   D / U│───────╯
│       │  Open file in editor        e    Toggle command log         x│───────╮
│       │  Change source path         P  General                       │       │
╰───────│  Switch repository          W    Toggle help                ?│       │
╭─ [4] S│  Refresh / settings     R / S    Quit                       q│       │
│       │  Toggle live refresh        L                                │       │
╰───────╰──────────────────────────────────────────────────────────────╯───────╯
space stage · a add · v pick · n changelist · c commit · r revert · d delete · …
The ? overlay, rendered by the app itself.