icdiff2.0.7
icdiff2.0.7
Published
improved colored diff
pip install icdiff
Package Downloads
Authors
Requires Python
Dependencies
Icdiff
Improved colored diff
Installation
Download the latest icdiff
and put it on your PATH.
Alternatively, install with packaging tools:
# pip
pip install icdiff
# apt
sudo apt install icdiff
# homebrew
brew install icdiff
# aur
yay -S icdiff
# nix
nix-env -i icdiff
Usage
icdiff [options] left_file right_file
Show differences between files in a two column view.
Options
--version show program's version number and exit
-h, --help show this help message and exit
--cols=COLS specify the width of the screen. Autodetection is Unix
only
--encoding=ENCODING specify the file encoding; defaults to utf8
-E MATCHER, --exclude-lines=MATCHER
Do not diff lines that match this regex. Not
compatible with the 'line-numbers' option
--head=HEAD consider only the first N lines of each file
-H, --highlight color by changing the background color instead of the
foreground color. Very fast, ugly, displays all
changes
-L LABELS, --label=LABELS
override file labels with arbitrary tags. Use twice,
one for each file
-N, --line-numbers generate output with line numbers. Not compatible with
the 'exclude-lines' option.
--no-bold use non-bold colors; recommended for solarized
--no-headers don't label the left and right sides with their file
names
--output-encoding=OUTPUT_ENCODING
specify the output encoding; defaults to utf8
-r, --recursive recursively compare subdirectories
-s, --report-identical-files
report when two files are the same
--show-all-spaces color all non-matching whitespace including that which
is not needed for drawing the eye to changes. Slow,
ugly, displays all changes
--tabsize=TABSIZE tab stop spacing
-t, --truncate truncate long lines instead of wrapping them
-u, --patch generate patch. This is always true, and only exists
for compatibility
-U NUM, --unified=NUM, --numlines=NUM
how many lines of context to print; can't be combined
with --whole-file
-W, --whole-file show the whole file instead of just changed lines and
context
--strip-trailing-cr strip any trailing carriage return at the end of an
input line
--color-map=COLOR_MAP
choose which colors are used for which items. Default
is --color-map='add:green_bold,change:yellow_bold,desc
ription:blue,meta:magenta,separator:blue,subtract:red_
bold'. You don't have to override all of them:
'--color-map=separator:white,description:cyan
Using with Git
To see what it looks like, try:
git difftool --extcmd icdiff
To install this as a tool you can use with Git, copy
git-icdiff
into your PATH and run:
git icdiff
You can configure git-icdiff
in Git's config:
git config --global icdiff.options '--highlight --line-numbers'
Using with subversion
To try it out, run:
svn diff --diff-cmd icdiff
Using with Mercurial
Add the following to your ~/.hgrc
:
[extensions]
extdiff=
[extdiff]
cmd.icdiff=icdiff
opts.icdiff=--recursive --line-numbers
Or check more in-depth setup instructions.
Setting up a dev environment
Create a virtualenv and install the dev dependencies. This is not needed for normal usage.
virtualenv venv
source venv/bin/activate
pip install -r requirements-dev.txt
Running tests
./test.sh python3
Making a release
- Update ChangeLog with all the changes since the last release
- Update
__version__
inicdiff
- Run tests, make sure they pass
git commit -a -m "release ${version}"
git push
git tag release-${version}
git push origin release-${version}
- A GitHub Action should be triggered due to the release tag being pushed, and will upload to PyPI.
License
This file is derived from difflib.HtmlDiff
which is under license.
I release my changes here under the same license. This is GPL compatible.