git merge -X<option>
Teach "-X <option>" command line argument to "git merge" that is passed to strategy implementations. "ours" and "theirs" autoresolution introduced by the previous commit can be asked to the recursive strategy. Signed-off-by: Avery Pennarun <apenwarr@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
73eb40eeaa
commit
8cc5b29065
@ -26,18 +26,29 @@ int cmd_merge_recursive(int argc, const char **argv, const char *prefix)
|
||||
|
||||
init_merge_options(&o);
|
||||
if (argv[0]) {
|
||||
int namelen = strlen(argv[0]);
|
||||
if (8 < namelen &&
|
||||
!strcmp(argv[0] + namelen - 8, "-subtree"))
|
||||
o.subtree_merge = 1;
|
||||
if (!suffixcmp(argv[0], "-subtree"))
|
||||
o.recursive_variant = MERGE_RECURSIVE_SUBTREE;
|
||||
}
|
||||
|
||||
if (argc < 4)
|
||||
usagef("%s <base>... -- <head> <remote> ...", argv[0]);
|
||||
|
||||
for (i = 1; i < argc; ++i) {
|
||||
if (!strcmp(argv[i], "--"))
|
||||
break;
|
||||
const char *arg = argv[i];
|
||||
|
||||
if (!prefixcmp(arg, "--")) {
|
||||
if (!arg[2])
|
||||
break;
|
||||
if (!strcmp(arg+2, "ours"))
|
||||
o.recursive_variant = MERGE_RECURSIVE_OURS;
|
||||
else if (!strcmp(arg+2, "theirs"))
|
||||
o.recursive_variant = MERGE_RECURSIVE_THEIRS;
|
||||
else if (!strcmp(arg+2, "subtree"))
|
||||
o.recursive_variant = MERGE_RECURSIVE_SUBTREE;
|
||||
else
|
||||
die("Unknown option %s", arg);
|
||||
continue;
|
||||
}
|
||||
if (bases_count < ARRAY_SIZE(bases)-1) {
|
||||
unsigned char *sha = xmalloc(20);
|
||||
if (get_sha1(argv[i], sha))
|
||||
|
||||
Reference in New Issue
Block a user