git-commit-vandalism/contrib/diffall/README
Tim Henigan 1252bbe1c6 contrib: add git-diffall script
The 'git difftool' allows the user to view diffs using an external tool.
It runs a separate instance of the tool for each file in the diff. This
makes it tedious to review changes spanning multiple files.

The 'git-diffall' script instead prepares temporary directories with the
files to be compared and launches a single instance of the external diff
tool to view them (i.e. a directory diff).

The 'diff.tool' or 'merge.tool' configuration variable is used to specify
which external tool is used.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 12:37:10 -08:00

32 lines
1.3 KiB
Plaintext

The git-diffall script provides a directory based diff mechanism
for git.
To determine what diff viewer is used, the script requires either
the 'diff.tool' or 'merge.tool' configuration option to be set.
This script is compatible with most common forms used to specify a
range of revisions to diff:
1. git diffall: shows diff between working tree and staged changes
2. git diffall --cached [<commit>]: shows diff between staged
changes and HEAD (or other named commit)
3. git diffall <commit>: shows diff between working tree and named
commit
4. git diffall <commit> <commit>: show diff between two named commits
5. git diffall <commit>..<commit>: same as above
6. git diffall <commit>...<commit>: show the changes on the branch
containing and up to the second, starting at a common ancestor
of both <commit>
Note: all forms take an optional path limiter [-- <path>*]
The '--extcmd=<command>' option allows the user to specify a custom
command for viewing diffs. When given, configured defaults are
ignored and the script runs $command $LOCAL $REMOTE. Additionally,
$BASE is set in the environment.
This script is based on an example provided by Thomas Rast on the
Git list [1]:
[1] http://thread.gmane.org/gmane.comp.version-control.git/124807