Rust

verco

A simple Git/Hg tui client focused on keyboard shortcuts

Screenshots

log screen

commit selected screen

Platforms

This project uses Cargo and pure Rust stable so it should work on Windows, Mac and Linux.

It depends on: - crossterm - ctrlc - rustyline

Install

You can either install it via cargo or download the binaries from github releases.

If you go the cargo route, you can install it using rustup. In a terminal, run this command to install verco:

cargo install verco

You'll be able to open verco from whichever directory you in.

Usage

In a terminal in a repository folder, run the verco command. It will launch verco's tui and you'll be able to interface with git/hg.

Commands

Key Sequence | Command --- | --- h | help q | quit s | status ll | log lc | log count dd | current diff all ds | current diff selected DC | revision changes DD | revision diff all DS | revision diff selected cc | commit all cs | commit selected m | merge RA | revert all rs | revert selected rr | list unresolved conflicts ro | resolve taking other rl | resolve taking local f | fetch p | pull P | push tn | new tag bb | list branches bn | new branch bd | delete branch x | custom command

Other Keybindings

Key Sequence | Command --- | --- ctrl+j, ctrl+n, arrow down | move down one line ctrl+k, ctrl+p, arrow up | move up one line ctrl+d, page down | move down half page ctrl+u, page up | move up half page ctrl+e | go to end ctrl+b, ctrl+g | go to beginning space | select entry (on selection mode) ctrl+c, esc | cancel

When reading a line, it uses <code>rustyline</code> default keybinds.

Custom Commands

You can create simple custom commands to run in your repository folder by placing them in the file .verco/custom_commands.txt in your repository root.

Each line in this file is treated as a different custom command. Until the first whitespace, the characters are treated as the keybind for the command, the next word is the command itself, and the rest are its parameters.

Example: gv git --version

With verco open, you can type in xgv (x is the custom command prefix) and it will print your git version without leaving verco. Use it to create build commands for example.

Hash Shortcuts

After running a log command at least once, you will notice some letters by its hash side. These are hash shortcuts. Say you want to quickly checkout some previous commit to see some changes. Instead of having to type its hash (or worse, using the mouse to select and copy text), you can just type its associated shortcut.

Example from verco's history log: * 2d76b45 (A) 2020-05-08 Matheus .. (HEAD -> master, origin/master, origin/HEAD) other keybinds in readme * 7af4f7f (B) 2020-05-07 Matheus .. fix mercurial hash shortcuts * 52019da (C) 2020-05-07 Matheus .. commit selected screenshot typo * 2c17265 (D) 2020-05-07 Matheus .. remove help screenshot (it's more "future proof") * 7f622dc (E) 2020-05-07 Matheus .. readme update with screenshots

Say we want to go back to fix mercurial hash shortcuts, instead of typing u7af4f7f<Enter> (u for update/checkout command), we can just type uB<Enter>. What verco does is a simple string replace, so, for git/hg, it's as if you just had typed the full hash.