builtin/diff-index: learn --merge-base
There is currently no easy way to take the diff between the working tree or index and the merge base between an arbitrary commit and HEAD. Even diff's `...` notation doesn't allow this because it only works between commits. However, the ability to do this would be desirable to a user who would like to see all the changes they've made on a branch plus uncommitted changes without taking into account changes made in the upstream branch. Teach diff-index and diff (with one commit) the --merge-base option which allows a user to use the merge base of a commit and HEAD as the "before" side. Signed-off-by: Denton Liu <liu.denton@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
df7dbab881
commit
0f5a1d449b
@ -33,6 +33,8 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix)
|
||||
|
||||
if (!strcmp(arg, "--cached"))
|
||||
option |= DIFF_INDEX_CACHED;
|
||||
else if (!strcmp(arg, "--merge-base"))
|
||||
option |= DIFF_INDEX_MERGE_BASE;
|
||||
else
|
||||
usage(diff_cache_usage);
|
||||
}
|
||||
|
@ -139,6 +139,8 @@ static int builtin_diff_index(struct rev_info *revs,
|
||||
const char *arg = argv[1];
|
||||
if (!strcmp(arg, "--cached") || !strcmp(arg, "--staged"))
|
||||
option |= DIFF_INDEX_CACHED;
|
||||
else if (!strcmp(arg, "--merge-base"))
|
||||
option |= DIFF_INDEX_MERGE_BASE;
|
||||
else
|
||||
usage(builtin_diff_usage);
|
||||
argv++; argc--;
|
||||
|
Reference in New Issue
Block a user