As suggested by Linus as a workaround to unconfuse diffstat,
this patch adds Index: line before the diff output the built-in
driver produces.
Signed-off-by: Junio C Hamano <redacted>
---
diff.c | 2 ++
1 files changed, 2 insertions(+)
# - 04/28 11:20 No need to say diff-tree -p -r in git-export
# + 04/28 11:25 Show Index: line from built-in diff driver.
Index: diff.c
--- k/diff.c (mode:100644)
+++ l/diff.c (mode:100644)
@@ -125,6 +125,8 @@ static void builtin_diff(const char *nam
next_at += snprintf(cmd+next_at, cmd_size-next_at,
diff_arg, input_name_sq[0], input_name_sq[1]);
+ printf("Index: %s\n", name);
+ fflush(NULL);
execlp("/bin/sh","sh", "-c", cmd, NULL);
}
On Thu, 28 Apr 2005, Junio C Hamano wrote:
As suggested by Linus as a workaround to unconfuse diffstat,
this patch adds Index: line before the diff output the built-in
driver produces.
Actually, I do dislike the Index: line, and think this is a pretty
intrusive work-around for a problem with diffstat.
There are other work-arounds for diffstat. In particular, diffstat has
various heuristics for finding the filename from the +++/--- files, and
the main one is
"*** %[^\t]\t%[^ ] %[^ ] %d %d:%d:%d %d"
(where "***" can be either +++ or ---). If if you match that one, diffstat
will pick up the name (first match) on its own.
Oh, actually maybe the better pattern to use is the one that GNU diff
itself ends up matching:
"*** %[^\t ]%[\t ]%d%c%d%c%d %d:%d:%d"
where the "%c" has to be either '-' or '/' (ie it ends up matching as
"numeric date" + "numeric time").
You can put the "mode" thing at the end, and diffstat won't care about it.
Linus