summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-05-19 12:59:34 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-05-24 01:59:27 (GMT)
commit30d005c02014680403b5d35ef274047ab91fa5bd (patch)
tree9e815f072822563da73f47a438e0c601d13d5008 /builtin
parent158b06caee5f9ea2987f444b8e49bd2d678b187d (diff)
downloadgit-30d005c02014680403b5d35ef274047ab91fa5bd.zip
git-30d005c02014680403b5d35ef274047ab91fa5bd.tar.gz
git-30d005c02014680403b5d35ef274047ab91fa5bd.tar.bz2
diff: use blob path for blob/file diffs
When we diff a blob against a working tree file like: git diff HEAD:Makefile Makefile we always use the working tree filename for both sides of the diff. In most cases that's fine, as the two would be the same anyway, as above. And until recently, we used the "name" for the blob, not the path, which would have the messy "HEAD:" on the beginning. But when they don't match, like: git diff HEAD:old_path new_path it makes sense to show both names. This patch uses the blob's path field if it's available, and otherwise falls back to using the filename (in preference to the blob's name, which is likely to be garbage like a raw sha1). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/diff.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/builtin/diff.c b/builtin/diff.c
index 1a1149e..5e7c642 100644
--- a/builtin/diff.c
+++ b/builtin/diff.c
@@ -90,7 +90,8 @@ static int builtin_diff_b_f(struct rev_info *revs,
blob[0]->mode, canon_mode(st.st_mode),
&blob[0]->item->oid, &null_oid,
1, 0,
- path, path);
+ blob[0]->path ? blob[0]->path : path,
+ path);
diffcore_std(&revs->diffopt);
diff_flush(&revs->diffopt);
return 0;