Like '--continue', the '--abort' option doesn't make any sense with other options or arguments to 'git merge' so ensure that none are present.
Signed-off-by: Chris Packham <judge.pack...@gmail.com> --- Changes in v3: - new builtin/merge.c | 4 ++++ t/t7600-merge.sh | 2 ++ 2 files changed, 6 insertions(+) diff --git a/builtin/merge.c b/builtin/merge.c index 836ec281b..668aaffb8 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1163,6 +1163,10 @@ int cmd_merge(int argc, const char **argv, const char *prefix) int nargc = 2; const char *nargv[] = {"reset", "--merge", NULL}; + if (orig_argc != 2) + usage_msg_opt("--abort expects no arguments", + builtin_merge_usage, builtin_merge_options); + if (!file_exists(git_path_merge_head())) die(_("There is no merge to abort (MERGE_HEAD missing).")); diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh index 682139c4e..2ebda509a 100755 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@ -154,6 +154,8 @@ test_expect_success 'test option parsing' ' test_must_fail git merge -s foobar c1 && test_must_fail git merge -s=foobar c1 && test_must_fail git merge -m && + test_must_fail git merge --abort foobar && + test_must_fail git merge --abort --quiet && test_must_fail git merge --continue foobar && test_must_fail git merge --continue --quiet && test_must_fail git merge -- 2.11.0.24.ge6920cf