git side-by-side terminal diff + log + review tool.
Diffyduck provides a git terminal diff/log view and some other miscellaneous tools, with the goal of making it easier for me to read and review code changes. I'm aiming for something faster to use than Github's PR interface, but more advanced than a basic git pager like delta (I want it to feel like a pager, but it's a TUI that triggers its own git commands).
Beyond a usual diff view, features include:
- Comments on diffs or commits, export comments. Comments stored in git state similar to git-notes
- Stats on changed classes/functions/symbols, parsed via tree-sitter
- Fold/expand inspired by org-mode
- Split windows to look at two different locations at once
No binaries yet. It's Go but we use tree-sitter, so you'll need both Go and a C compiler.
make bootstrap # Pull some required tree-sitter code
make install # Compile and installFor the most part I'm trying to stick to git-replacement commands like dfd status, dfd diff, dfd log, etc.
Run dfd --help to see usage and help output, which once looked like this:
$ dfd --help
dfd - terminal side-by-side diff viewer
Usage:
dfd [flags] [refs] [-- paths]
dfd <command> [flags] [args]
Commands:
diff, d Compare changes
show Show a commit
log, l Browse commit history
clean Delete persisted snapshots
branch, b Show branch dependency tree
status, s Show rich working tree status (default)
comment, c List and edit comments
config Manage configuration
completion Print shell completion script
Global flags:
-h, --help Show help
--version Show version
Use "dfd help <command>" for more about a command.
Press C-h inside dfd for keybinding help.
If you're in an interactive command, use ctrl+h to show the help view and see
keybindings.
Liable to change based on whatever I find useful, and has only been tested on my own machine and preferred tools.
It does include a config feature where you can customise settings, theme and keybindings.
99.9% generated, which was the only reason I could get time to do it.
