pwsh-diff
This project has been "soft-abandoned," because it turns out (perhaps unsurprisingly) that
less
-for-Windows has the same limitations as Perl-for-Windows with respect to color control codes, and there are really no other suitable pagers. I would consider resuming work on this, were a decent Windows-native pager to appear; if you know something I don't, please open an issue!
pwsh-diff
aims to serve as a PowerShell-based alternative to
diff-highlight
(and, eventually,
diff-so-fancy) on Windows, because Perl and Windows
don't seem
to
get along when it comes to ANSI coloring.
Installation
Make sure you have PowerShell Core (pwsh.exe
) in your PATH
somewhere. Then, copy the pwsh-diff
script to a directory in your PATH
. That's it!
Usage
Configure Git to use pwsh-git
for all diff/log output:
git config --global core.pager "pwsh-diff | less --tabs=4 -RFX"
Improved colors
pwsh-diff
will read the same color settings expected by diff-highlight
, and it depends on Git
itself to colorize everything besides the lines with highlighted bits. The following options are
recommended:
git config --global color.ui true
git config --global color.diff-highlight.oldNormal "red bold"
git config --global color.diff-highlight.oldHighlight "red bold 52"
git config --global color.diff-highlight.newNormal "green bold"
git config --global color.diff-highlight.newHighlight "green bold 22"
git config --global color.diff.old "red bold"
git config --global color.diff.new "green bold"
Acknowledgements
Much of the requisite logic has been adapted directly from the aforementioned diff-highlight and diff-so-fancy.