'
+test_expect_success 'cherry-pick -m complains of bogus numbers' '
+ # expect 129 here to distinguish between cases where
+ # there was nothing to cherry-pick
+ test_expect_code 129 git cherry-pick -m &&
+ test_expect_code 129 git cherry-pick -m foo b &&
+ test_expect_code 129 git cherry-pick -m -1 b &&
+ test_expect_code 129 git cherry-pick -m 0 b
+'
+
test_expect_success 'cherry-pick a non-merge with -m should fail' '
git reset --hard &&
git checkout a^0 &&
- ! git cherry-pick -m 1 b &&
- git diff --exit-code a
+ test_expect_code 128 git cherry-pick -m 1 b &&
+ git diff --exit-code a --
'
git reset --hard &&
git checkout a^0 &&
- ! git cherry-pick c &&
- git diff --exit-code a
+ test_must_fail git cherry-pick c &&
+ git diff --exit-code a --
'
git reset --hard &&
git checkout b^0 &&
- ! git cherry-pick -m 3 c
+ test_must_fail git cherry-pick -m 3 c
'
git reset --hard &&
git checkout c^0 &&
- ! git revert -m 1 b &&
+ test_must_fail git revert -m 1 b &&
git diff --exit-code c
'
git reset --hard &&
git checkout c^0 &&
- ! git revert c &&
+ test_must_fail git revert c &&
git diff --exit-code c
'
git reset --hard &&
git checkout c^0 &&
git revert -m 1 c &&
- git diff --exit-code a
+ git diff --exit-code a --
'
git reset --hard &&
git checkout c^0 &&
git revert -m 2 c &&
- git diff --exit-code b
+ git diff --exit-code b --
'
git reset --hard &&
git checkout c^0 &&
- ! git revert -m 3 c &&
+ test_must_fail git revert -m 3 c &&
git diff --exit-code c
'