diff options
author | Christian Couder <chriscool@tuxfamily.org> | 2010-06-02 07:58:39 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-06-02 10:09:58 -0700 |
commit | aa29ccf4c07a6e1e249794e1fa3c7cd0bf0a9e46 (patch) | |
tree | a21cd25f05ed7b6f1d2a085ee6f2cc21e7b9f8a1 /t/t3508-cherry-pick-many-commits.sh | |
parent | revert: allow cherry-picking more than one commit (diff) | |
download | tgif-aa29ccf4c07a6e1e249794e1fa3c7cd0bf0a9e46.tar.xz |
revert: add tests to check cherry-picking many commits
Note that there is an expected failure when running:
git cherry-pick -3 fourth
that's because:
git rev-list --no-walk -3 fourth
produce only one commit and not 3 as "--no-walk" seems to
take over "-3".
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3508-cherry-pick-many-commits.sh')
-rwxr-xr-x | t/t3508-cherry-pick-many-commits.sh | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/t/t3508-cherry-pick-many-commits.sh b/t/t3508-cherry-pick-many-commits.sh new file mode 100755 index 0000000000..3b87efe3ad --- /dev/null +++ b/t/t3508-cherry-pick-many-commits.sh @@ -0,0 +1,95 @@ +#!/bin/sh + +test_description='test cherry-picking many commits' + +. ./test-lib.sh + +test_expect_success setup ' + echo first > file1 && + git add file1 && + test_tick && + git commit -m "first" && + git tag first && + + git checkout -b other && + for val in second third fourth + do + echo $val >> file1 && + git add file1 && + test_tick && + git commit -m "$val" && + git tag $val + done +' + +test_expect_success 'cherry-pick first..fourth works' ' + git checkout master && + git reset --hard first && + test_tick && + git cherry-pick first..fourth && + git diff --quiet other && + git diff --quiet HEAD other && + test "$(git rev-parse --verify HEAD)" != "$(git rev-parse --verify fourth)" +' + +test_expect_success 'cherry-pick --ff first..fourth works' ' + git checkout master && + git reset --hard first && + test_tick && + git cherry-pick --ff first..fourth && + git diff --quiet other && + git diff --quiet HEAD other && + test "$(git rev-parse --verify HEAD)" = "$(git rev-parse --verify fourth)" +' + +test_expect_success 'cherry-pick -n first..fourth works' ' + git checkout master && + git reset --hard first && + test_tick && + git cherry-pick -n first..fourth && + git diff --quiet other && + git diff --cached --quiet other && + git diff --quiet HEAD first +' + +test_expect_success 'revert first..fourth works' ' + git checkout master && + git reset --hard fourth && + test_tick && + git revert first..fourth && + git diff --quiet first && + git diff --cached --quiet first && + git diff --quiet HEAD first +' + +test_expect_success 'revert ^first fourth works' ' + git checkout master && + git reset --hard fourth && + test_tick && + git revert ^first fourth && + git diff --quiet first && + git diff --cached --quiet first && + git diff --quiet HEAD first +' + +test_expect_success 'revert fourth fourth~1 fourth~2 works' ' + git checkout master && + git reset --hard fourth && + test_tick && + git revert fourth fourth~1 fourth~2 && + git diff --quiet first && + git diff --cached --quiet first && + git diff --quiet HEAD first +' + +test_expect_failure 'cherry-pick -3 fourth works' ' + git checkout master && + git reset --hard first && + test_tick && + git cherry-pick -3 fourth && + git diff --quiet other && + git diff --quiet HEAD other && + test "$(git rev-parse --verify HEAD)" != "$(git rev-parse --verify fourth)" +' + +test_done |