summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Packham <judge.packham@gmail.com>2016-12-14 21:37:57 +1300
committerJunio C Hamano <gitster@pobox.com>2016-12-14 10:02:04 -0800
commit042e290da6aee0a9f21cd5890ccf231c266e177e (patch)
tree7056cb718d62c88dc75614b7f8b1a3c263bab346
parentc261a87e704679203510d48ff4db7bc7006b8a5a (diff)
downloadgit-042e290da6aee0a9f21cd5890ccf231c266e177e.tar.gz
merge: ensure '--abort' option takes no arguments
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.packham@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/merge.c4
-rwxr-xr-xt/t7600-merge.sh2
2 files changed, 6 insertions, 0 deletions
diff --git a/builtin/merge.c b/builtin/merge.c
index 836ec281b4..668aaffb84 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 682139c4ea..2ebda509ac 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