diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-05-29 17:14:41 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-05-29 17:14:41 -0700 |
commit | ac2b0e8fb77d02f480af3f45a44cb9ea611008a4 (patch) | |
tree | 0ee737307cb61cc33383246e2f4eae025778f4e4 /t/t3505-cherry-pick-empty.sh | |
parent | 4b580061b350ae9d27ab7c3936a45828a33624c6 (diff) | |
download | git-ac2b0e8fb77d02f480af3f45a44cb9ea611008a4.tar.gz |
cherry-pick: regression fix for empty commits
The earlier "--keep-redundant-commit" series broke "cherry-pick"
that is given a commit whose change is already in the current
history. Such a cherry-pick would result in an empty change, and
should stop with an error, telling the user that conflict resolution
may have made the result empty (which is exactly what is happening),
but we silently dropped the change on the floor without any message
nor non-zero exit code.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3505-cherry-pick-empty.sh')
-rwxr-xr-x | t/t3505-cherry-pick-empty.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/t/t3505-cherry-pick-empty.sh b/t/t3505-cherry-pick-empty.sh index 92f00cdf84..5a1340cee6 100755 --- a/t/t3505-cherry-pick-empty.sh +++ b/t/t3505-cherry-pick-empty.sh @@ -71,4 +71,34 @@ test_expect_success 'cherry pick with --keep-redundant-commits' ' git cherry-pick --keep-redundant-commits HEAD^ ' +test_expect_success 'cherry-pick a commit that becomes no-op (prep)' ' + git checkout master && + git branch fork && + echo foo >file2 && + git add file2 && + test_tick && + git commit -m "add file2 on master" && + + git checkout fork && + echo foo >file2 && + git add file2 && + test_tick && + git commit -m "add file2 on the side" +' + +test_expect_success 'cherry-pick a no-op without --keep-redundant' ' + git reset --hard && + git checkout fork^0 && + test_must_fail git cherry-pick master +' + +test_expect_success 'cherry-pick a no-op with --keep-redundant' ' + git reset --hard && + git checkout fork^0 && + git cherry-pick --keep-redundant-commits master && + git show -s --format='%s' >actual && + echo "add file2 on master" >expect && + test_cmp expect actual +' + test_done |