#diffs #git #staged #tui #editor #binary #unstaged

bin+lib mamediff

A TUI editor for managing unstaged and staged Git diffs

4 releases

new 0.1.1 Jan 16, 2025
0.1.0 Jan 13, 2025
0.0.2 Jan 7, 2025
0.0.1 Jan 5, 2025

#105 in Text editors

Download history 203/week @ 2025-01-01 161/week @ 2025-01-08

364 downloads per month

MIT license

270KB
2.5K SLoC

mamediff

mamediff Documentation Actions Status License

A TUI editor for managing unstaged and staged Git diffs. Inspired by Magit, this tool focuses on providing a simpler, specialized interface for staging, unstaging, and discarding diffs.

mamediff

Installation

Pre-built binaries

Pre-built binaries for Linux and MacOS are available in the releases page.

// An example to download the binary for Linux.
$ VERSION=...  # Set the target mamediff version such as "0.1.1"
$ curl -L https://github.com/sile/mamediff/releases/download/${VERSION}/mamediff-${VERSION}.x86_64-unknown-linux-musl -o mamediff
$ chmod +x mamediff
$ ./mamediff -h

With Cargo

If you have installed cargo (the package manager for Rust), you can install mamediff with the following command:

$ cargo install mamediff
$ mamediff -h

Usage

Just execute mamediff command within a Git directory. The available key bindings will be displayed in the top-right corner of the window.

$ mamediff
->| Unstaged changes (1 files)                     | (q)uit [ESC,C-c]
  :   modified src/main.rs (1 chunks, -1 +1 lines) | ()        [C-n]
  :     @@ -1,3 +1,3 @@                            | ()        [C-b]
  :        fn main() {                             | (t)oggle   [TAB]
  :       -    println!("Hello, World!");          | (s)tage
  :       +    println!("Hello, mamediff!");       | (D)iscard
  :        }                                       +---- (h)ide -----
  | Staged changes (0 files)

Dependencies

~4–12MB
~155K SLoC