rksys / diff-so-fancy

Good-lookin' diffs. Actually… nah… The best-lookin' diffs. :tada:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

diff-so-fancy Circle CI build TravisCI build AppVeyor build

diff-so-fancy strives to make your diff's human readable instead of machine readable. This helps improve code quality and help you spot defects faster.

Screenshot

Vanilla git diff vs git and diff-so-fancy

diff-highlight vs diff-so-fancy

Install

Installation is as simple as downloading the diff-so-fancy script to a directory in your path

diff-so-fancy is also available from NPM, brew, and as a package on Arch Linux.

Usage

Configure git to use diff-so-fancy for all diff output:

git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"

Improved colors for the highlighted bits

The default colors are not the best so we recommend the following color settings as a base.

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.meta "227"
git config --global color.diff.frag "magenta bold"
git config --global color.diff.commit "227 bold"
git config --global color.diff.old "red bold"
git config --global color.diff.new "green bold"
git config --global color.diff.whitespace "red reverse"

Options

markEmptyLines

Should the first block of an empty line be colored. (Default: true)

git config --bool --global diff-so-fancy.markEmptyLines false

changeHunkIndicators

Simplify git header chunks to a more human readable format. (Default: true)

git config --bool --global diff-so-fancy.changeHunkIndicators false

stripLeadingSymbols

Should the pesky + or - at line-start be removed. (Default: true)

git config --bool --global diff-so-fancy.stripLeadingSymbols false

useUnicodeRuler

By default the separator for the file header uses Unicode line drawing characters. If this is causing output errors on your terminal set this to false to use ASCII characters instead. (Default: true)

git config --bool --global diff-so-fancy.useUnicodeRuler false

Contributing

Pull requests quite welcome, along with any feedback or ideas.

Other documentation

License

MIT

About

Good-lookin' diffs. Actually… nah… The best-lookin' diffs. :tada:

License:MIT License


Languages

Language:Perl 73.4%Language:Shell 26.6%