зеркало из https://github.com/microsoft/git.git
cherry-pick/revert -m: add tests
This adds a new test to check cherry-pick/revert of a merge commit. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
7791ecbc62
Коммит
6232b3438d
|
@ -0,0 +1,123 @@
|
|||
#!/bin/sh
|
||||
|
||||
test_description='cherry picking and reverting a merge
|
||||
|
||||
b---c
|
||||
/ /
|
||||
initial---a
|
||||
|
||||
'
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success setup '
|
||||
|
||||
>A &&
|
||||
>B &&
|
||||
git add A B &&
|
||||
git commit -m "Initial" &&
|
||||
git tag initial &&
|
||||
git branch side &&
|
||||
echo new line >A &&
|
||||
git commit -m "add line to A" A &&
|
||||
git tag a &&
|
||||
git checkout side &&
|
||||
echo new line >B &&
|
||||
git commit -m "add line to B" B &&
|
||||
git tag b &&
|
||||
git checkout master &&
|
||||
git merge side &&
|
||||
git tag c
|
||||
|
||||
'
|
||||
|
||||
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_success 'cherry pick a merge without -m should fail' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout a^0 &&
|
||||
! git cherry-pick c &&
|
||||
git diff --exit-code a
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'cherry pick a merge (1)' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout a^0 &&
|
||||
git cherry-pick -m 1 c &&
|
||||
git diff --exit-code c
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'cherry pick a merge (2)' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout b^0 &&
|
||||
git cherry-pick -m 2 c &&
|
||||
git diff --exit-code c
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'cherry pick a merge relative to nonexistent parent should fail' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout b^0 &&
|
||||
! git cherry-pick -m 3 c
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'revert a non-merge with -m should fail' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout c^0 &&
|
||||
! git revert -m 1 b &&
|
||||
git diff --exit-code c
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'revert a merge without -m should fail' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout c^0 &&
|
||||
! git revert c &&
|
||||
git diff --exit-code c
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'revert a merge (1)' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout c^0 &&
|
||||
git revert -m 1 c &&
|
||||
git diff --exit-code a
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'revert a merge (2)' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout c^0 &&
|
||||
git revert -m 2 c &&
|
||||
git diff --exit-code b
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'revert a merge relative to nonexistent parent should fail' '
|
||||
|
||||
git reset --hard &&
|
||||
git checkout c^0 &&
|
||||
! git revert -m 3 c &&
|
||||
git diff --exit-code c
|
||||
|
||||
'
|
||||
|
||||
test_done
|
Загрузка…
Ссылка в новой задаче