Hi, "git diff --uncached" invokes the GIT_EXTERNAL_DIFF variable with just one argument (instead of 7 arguments, as documented) in a particular situation: when there are conflicts after "git stash apply". To reproduce: - Set environment variable GIT_EXTERNAL_DIFF to point to the attached script. - Make a clean gnulib checkout, 1 day old. - Add a entry to the top of the ChangeLog. - $ git pull fails due a conflict. - $ git stash - $ git pull - $ git stash apply - $ git-diff --cached | cat yields: my-diff-for-git ChangeLog diff --cc ChangeLog index 443ad76,991c26b..0000000 --- a/ChangeLog +++ b/ChangeLog @@@ -1,7 -1,6 +1,11 @@@ 2007-09-30 Bruno Haible <bruno@xxxxxxxxx> ++<<<<<<< Updated upstream:ChangeLog + * tests/test-getaddrinfo.c (AF_UNSPEC): Provide a fallback definition. + Needed on BeOS. ++======= + * Some other changes. ++>>>>>>> Stashed changes:ChangeLog 2007-09-30 Bruno Haible <bruno@xxxxxxxxx> As you can see from the output of the script's line 2, it was called with just one argument. This is not enough information for producing output in a different way than the built-in way - defeating the purpose of GIT_EXTERNAL_DIFF. Can the GIT_EXTERNAL_DIFF invocation be done with 7 or more arguments? It'd be OK to extend the calling convention. Bruno
Attachment:
my-diff-for-git
Description: application/shellscript