Browse Source
* cc/cherry-pick-series: Documentation/revert: describe passing more than one commit Documentation/cherry-pick: describe passing more than one commit revert: add tests to check cherry-picking many commits revert: allow cherry-picking more than one commit revert: change help_msg() to take no argument revert: refactor code into a do_pick_commit() function revert: use run_command_v_opt() instead of execv_git_cmd() revert: cleanup code for -x optionmaint

4 changed files with 264 additions and 66 deletions
@ -0,0 +1,95 @@
@@ -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 |
Loading…
Reference in new issue