aboutsummaryrefslogtreecommitdiff
path: root/builtin-diff.c
diff options
context:
space:
mode:
authorMatt McCutchen <matt@mattmccutchen.net>2008-10-10 21:56:15 -0400
committerShawn O. Pearce <spearce@spearce.org>2008-10-12 12:36:19 -0700
commitb75271d93a9e4be960d53fc4f955802530e0e733 (patch)
tree992479e9107dc2186498b675caf0ffda318a86b3 /builtin-diff.c
parentf285a2d7ed6548666989406de8f0e7233eb84368 (diff)
downloadgit-b75271d93a9e4be960d53fc4f955802530e0e733.tar.gz
git-b75271d93a9e4be960d53fc4f955802530e0e733.tar.xz
"git diff <tree>{3,}": do not reverse order of arguments
According to the message of commit 0fe7c1de16f71312e6adac4b85bddf0d62a47168, "git diff" with three or more trees expects the merged tree first followed by the parents, in order. However, this command reversed the order of its arguments, resulting in confusing diffs. A comment /* Again, the revs are all reverse */ suggested there was a reason for this, but I can't figure out the reason, so I removed the reversal of the arguments. Test case included. Signed-off-by: Matt McCutchen <matt@mattmccutchen.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'builtin-diff.c')
-rw-r--r--builtin-diff.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/builtin-diff.c b/builtin-diff.c
index 35da366f4..9c8c29573 100644
--- a/builtin-diff.c
+++ b/builtin-diff.c
@@ -177,10 +177,8 @@ static int builtin_diff_combined(struct rev_info *revs,
if (!revs->dense_combined_merges && !revs->combine_merges)
revs->dense_combined_merges = revs->combine_merges = 1;
parent = xmalloc(ents * sizeof(*parent));
- /* Again, the revs are all reverse */
for (i = 0; i < ents; i++)
- hashcpy((unsigned char *)(parent + i),
- ent[ents - 1 - i].item->sha1);
+ hashcpy((unsigned char *)(parent + i), ent[i].item->sha1);
diff_tree_combined(parent[0], parent + 1, ents - 1,
revs->dense_combined_merges, revs);
return 0;