Steven Myint edc68b7c95 Leave one of the exits due to entry point usage пре 11 година
img document update; images пре 11 година
src Leave one of the exits due to entry point usage пре 11 година
tests Document/usage/dogfood test update after merge for issue #4 (Revision control support); more robust on parsing strange diff пре 11 година
.gitignore New setup.py and document/make targets update for issue #1 пре 11 година
LICENSE Change license to 3-clause BSD for issue #1 пре 11 година
Makefile New setup.py and document/make targets update for issue #1 пре 11 година
README.md New setup.py and document/make targets update for issue #1 пре 11 година
setup.py New setup.py and document/make targets update for issue #1 пре 11 година

README.md

About

View incremental, colored diff in unified format or side by side with auto pager. Requires python (>= 2.5.0) and less.

Default Side by side

Installation

Cdiff is not in PyPI yet, so far you could download the script directly or use the setup.py to install.

Download directly

Save src/cdiff.py to whatever directory which is in your $PATH, for example, $HOME/bin is in my $PATH, so I save the script there and name as cdiff.

curl -ksS https://raw.github.com/ymattw/cdiff/master/src/cdiff.py > ~/bin/cdiff
chmod +x ~/bin/cdiff

Install with the setup.py

You can run the setup.py from the source to install cdiff to system wide directory.

git clone https://github.com/ymattw/cdiff.git
cd cdiff
sudo ./setup.py install

This usually installs it as /usr/local/bin/cdiff.

Usage

Cdiff reads diff from diff (patch) file if given, or stdin if redirected, or diff produced by revision tool if in a git/svn/hg workspace. Use option -s to enable side by side view, and option -w N to set a text width other than default 80. See examples below.

Show usage:

cdiff -h

View a diff (patch) file:

cdiff foo.patch             # view incremental, colored udiff
cdiff foo.patch -s          # view side by side
cdiff foo.patch -s -w 90    # use text width 90 other than default 80

Read diff from local modification in a svn, git, or hg workspace:

cd proj-workspace
cdiff
cdiff -s
cdiff -s -w 90

Pipe in a diff:

svn diff -r PREV | cdiff -s
git log -p -2 | cdiff -s
git show <commit> | cdiff -s

Redirect output to another patch file is safe:

svn diff | cdiff -s > my.patch

Known issue

  • Only support unified format for input diff
  • Side by side mode has alignment problem for wide chars