git-diff A...B to (usually) mean "git-diff git-merge-base A B
B"
This tweaks the argument parser of "git diff" to allow "git-diff A...B" to show diffs leading to B since their merge-base, when there is only one sensible merge base between A and B. Currently nonsense cases are thrown at combined-diff to produce nonsense results, which would eventually need to be fixed. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
b9718d41c7
commit
9919f41c91
@ -346,7 +346,15 @@ int cmd_diff(int argc, const char **argv, char **envp)
|
|||||||
return builtin_diff_index(&rev, argc, argv);
|
return builtin_diff_index(&rev, argc, argv);
|
||||||
else if (ents == 2)
|
else if (ents == 2)
|
||||||
return builtin_diff_tree(&rev, argc, argv, ent);
|
return builtin_diff_tree(&rev, argc, argv, ent);
|
||||||
|
else if ((ents == 3) && (ent[0].item->flags & UNINTERESTING)) {
|
||||||
|
/* diff A...B where there is one sane merge base between
|
||||||
|
* A and B. We have ent[0] == merge-base, ent[1] == A,
|
||||||
|
* and ent[2] == B. Show diff between the base and B.
|
||||||
|
*/
|
||||||
|
return builtin_diff_tree(&rev, argc, argv, ent);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return builtin_diff_combined(&rev, argc, argv, ent, ents);
|
return builtin_diff_combined(&rev, argc, argv,
|
||||||
|
ent, ents);
|
||||||
usage(builtin_diff_usage);
|
usage(builtin_diff_usage);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user