mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
rebase: flag --apply and --merge as incompatible
Previously, we flagged options which implied --apply as being incompatible with options which implied --merge. But if both options were given explicitly, then we didn't flag the incompatibility. The same is true with --apply and --interactive. Add the check, and add some testcases to verify these are also caught. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1207599e83
commit
7d718c552b
|
@ -907,6 +907,9 @@ static int parse_opt_am(const struct option *opt, const char *arg, int unset)
|
|||
BUG_ON_OPT_NEG(unset);
|
||||
BUG_ON_OPT_ARG(arg);
|
||||
|
||||
if (opts->type != REBASE_UNSPECIFIED && opts->type != REBASE_APPLY)
|
||||
die(_("apply options and merge options cannot be used together"));
|
||||
|
||||
opts->type = REBASE_APPLY;
|
||||
|
||||
return 0;
|
||||
|
@ -920,8 +923,10 @@ static int parse_opt_merge(const struct option *opt, const char *arg, int unset)
|
|||
BUG_ON_OPT_NEG(unset);
|
||||
BUG_ON_OPT_ARG(arg);
|
||||
|
||||
if (!is_merge(opts))
|
||||
opts->type = REBASE_MERGE;
|
||||
if (opts->type != REBASE_UNSPECIFIED && opts->type != REBASE_MERGE)
|
||||
die(_("apply options and merge options cannot be used together"));
|
||||
|
||||
opts->type = REBASE_MERGE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -935,6 +940,9 @@ static int parse_opt_interactive(const struct option *opt, const char *arg,
|
|||
BUG_ON_OPT_NEG(unset);
|
||||
BUG_ON_OPT_ARG(arg);
|
||||
|
||||
if (opts->type != REBASE_UNSPECIFIED && opts->type != REBASE_MERGE)
|
||||
die(_("apply options and merge options cannot be used together"));
|
||||
|
||||
opts->type = REBASE_MERGE;
|
||||
opts->flags |= REBASE_INTERACTIVE_EXPLICIT;
|
||||
|
||||
|
|
|
@ -67,7 +67,10 @@ test_rebase_am_only () {
|
|||
|
||||
}
|
||||
|
||||
# Check options which imply --apply
|
||||
test_rebase_am_only --whitespace=fix
|
||||
test_rebase_am_only -C4
|
||||
# Also check an explicit --apply
|
||||
test_rebase_am_only --apply
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Reference in a new issue