An Interest In:
Web News this Week
- April 27, 2024
- April 26, 2024
- April 25, 2024
- April 24, 2024
- April 23, 2024
- April 22, 2024
- April 21, 2024
Dunk is my new diff pager
Dunk is a beautiful git diff tool built on top of rich.
Browsing through twitter the other day I discovered it through this tweet by _darrenburns.
Ok, here's what I've been building today
Pipe the output of 'git diff' into dunk and you'll get a GitHub style side-by-side diff right in your terminal.
github.com/darrenburns/du20:14 PM - 02 Apr 2022
Dunk is beta
Before I dive in deep, I do want to mention that Dunk is super new and beta at this point. I am making it my default pager, because I know what I am doing and can quickly shift back if I need to, no sweat. If you are a little less comfortable with the command line, terminal, or reading any issues that might come up, it might be best if you just pipe into Dunk when you want to use it.
try it
You can try it with pipx.
git diff | pipx run dunk
install it
If you like it, you can install it with pip or pipx, I prefer pipx for cli applications like this.
pipx install dunk
set it as your default pager
You can configure dunk as your default pager with the command line, or
by editing your .gitconfig
file.
git config --global pager.diff "dunk | less -R`
[pager] diff = dunk | less -R
As pointed out by _darrenburns dunk is not a pager and you can gain back all of the benefits of using a pager by piping into less with the
-R
flag.
reset it if you don't like it
You can --unset
your pager configuration from the command line or edit your .gitconfig
file by hand to remove the lines shown above.
git config --global --unset pager.diff
Comparison
I have some edits to a game my son and I are working on unstaged so I ran git diff
on that project with and without dunk to compare the differences.
Dunk just looks so good.
Always install
If you follow along here often you know that I am a big fan of installing all my tools in an ansible playbook so that I don't suffer configuring a new machine for months after getting it and wondering why its not exactly like the last.
# Dunk - prettier git diffs# https://github.com/darrenburns/dunk- name: check is dunk installed shell: command -v black register: dunk_exists ignore_errors: yes- name: install dunk when: dunk_exists is failed shell: pipx install dunk
Installing packages with ansible only if they do not exist
More on conditionally installing tools with ansible in this post.
Original Link: https://dev.to/waylonwalker/dunk-is-my-new-diff-pager-5388
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To