Code

[PATCH] Diff-tree-helper take two.
authorJunio C Hamano <junkio@cox.net>
Tue, 26 Apr 2005 16:25:05 +0000 (09:25 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 26 Apr 2005 16:25:05 +0000 (09:25 -0700)
commitbe3cfa85f45e32722a65349d023667be906a66b6
treea172f60b1266b028962753354a367142f34c090d
parentd1df5743809614241883ecad51876607cf432034
[PATCH] Diff-tree-helper take two.

This reworks the diff-tree-helper and show-diff to further make external
diff command interface simpler.

These commands now honor GIT_EXTERNAL_DIFF environment variable which
can point at an arbitrary program that takes 7 parameters:

  name file1 file1-sha1 file1-mode file2 file2-sha1 file2-mode

The parameters for an external diff command are as follows:

  name        this invocation of the command is to emit diff
      for the named cache/tree entry.

  file1       pathname that holds the contents of the first
      file.  This can be a file inside the working
      tree, or a temporary file created from the blob
      object, or /dev/null.  The command should not
      attempt to unlink it -- the temporary is
      unlinked by the caller.

  file1-sha1  sha1 hash if file1 is a blob object, or "."
      otherwise.

  file1-mode  mode bits for file1, or "." for a deleted file.

If GIT_EXTERNAL_DIFF environment variable is not set, the
default is to invoke diff with the set of parameters old
show-diff used to use.  This built-in implementation honors the
GIT_DIFF_CMD and GIT_DIFF_OPTS environment variables as before.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff-tree-helper.c
diff.c
diff.h
show-diff.c