Simplify t3410
Use test_commit() and test_merge(), reducing the code while making the intent clearer. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
008849689e
commit
4bd03d15e4
@ -22,47 +22,17 @@ rewritten.
|
||||
# where B, D and G touch the same file.
|
||||
|
||||
test_expect_success 'setup' '
|
||||
: > file1 &&
|
||||
git add file1 &&
|
||||
test_tick &&
|
||||
git commit -m A &&
|
||||
git tag A &&
|
||||
echo 1 > file1 &&
|
||||
test_tick &&
|
||||
git commit -m B file1 &&
|
||||
: > file2 &&
|
||||
git add file2 &&
|
||||
test_tick &&
|
||||
git commit -m C &&
|
||||
echo 2 > file1 &&
|
||||
test_tick &&
|
||||
git commit -m D file1 &&
|
||||
: > file3 &&
|
||||
git add file3 &&
|
||||
test_tick &&
|
||||
git commit -m E &&
|
||||
git tag E &&
|
||||
git checkout -b branch1 A &&
|
||||
: > file4 &&
|
||||
git add file4 &&
|
||||
test_tick &&
|
||||
git commit -m F &&
|
||||
git tag F &&
|
||||
echo 3 > file1 &&
|
||||
test_tick &&
|
||||
git commit -m G file1 &&
|
||||
git tag G &&
|
||||
: > file5 &&
|
||||
git add file5 &&
|
||||
test_tick &&
|
||||
git commit -m H &&
|
||||
git tag H &&
|
||||
git checkout -b branch2 F &&
|
||||
: > file6 &&
|
||||
git add file6 &&
|
||||
test_tick &&
|
||||
git commit -m I &&
|
||||
git tag I
|
||||
test_commit A file1 &&
|
||||
test_commit B file1 1 &&
|
||||
test_commit C file2 &&
|
||||
test_commit D file1 2 &&
|
||||
test_commit E file3 &&
|
||||
git checkout A &&
|
||||
test_commit F file4 &&
|
||||
test_commit G file1 3 &&
|
||||
test_commit H file5 &&
|
||||
git checkout F &&
|
||||
test_commit I file6
|
||||
'
|
||||
|
||||
# A - B - C - D - E
|
||||
@ -72,68 +42,44 @@ test_expect_success 'setup' '
|
||||
# I -- G2 -- J -- K I -- K
|
||||
# G2 = same changes as G
|
||||
test_expect_success 'skip same-resolution merges with -p' '
|
||||
git checkout branch1 &&
|
||||
git checkout H &&
|
||||
! git merge E &&
|
||||
echo 23 > file1 &&
|
||||
git add file1 &&
|
||||
git commit -m L &&
|
||||
git checkout branch2 &&
|
||||
echo 3 > file1 &&
|
||||
git commit -a -m G2 &&
|
||||
test_commit L file1 23 &&
|
||||
git checkout I &&
|
||||
test_commit G2 file1 3 &&
|
||||
! git merge E &&
|
||||
echo 23 > file1 &&
|
||||
git add file1 &&
|
||||
git commit -m J &&
|
||||
echo file7 > file7 &&
|
||||
git add file7 &&
|
||||
git commit -m K &&
|
||||
GIT_EDITOR=: git rebase -i -p branch1 &&
|
||||
test $(git rev-parse branch2^^) = $(git rev-parse branch1) &&
|
||||
test_commit J file1 23 &&
|
||||
test_commit K file7 file7 &&
|
||||
git rebase -i -p L &&
|
||||
test $(git rev-parse HEAD^^) = $(git rev-parse L) &&
|
||||
test "23" = "$(cat file1)" &&
|
||||
test "" = "$(cat file6)" &&
|
||||
test "file7" = "$(cat file7)" &&
|
||||
|
||||
git checkout branch1 &&
|
||||
git reset --hard H &&
|
||||
git checkout branch2 &&
|
||||
git reset --hard I
|
||||
test "I" = "$(cat file6)" &&
|
||||
test "file7" = "$(cat file7)"
|
||||
'
|
||||
|
||||
# A - B - C - D - E
|
||||
# \ \ \
|
||||
# F - G - H -- L \ --> L
|
||||
# \ | \
|
||||
# I -- G2 -- J -- K I -- G2 -- K
|
||||
# F - G - H -- L2 \ --> L2
|
||||
# \ | \
|
||||
# I -- G3 --- J2 -- K2 I -- G3 -- K2
|
||||
# G2 = different changes as G
|
||||
test_expect_success 'keep different-resolution merges with -p' '
|
||||
git checkout branch1 &&
|
||||
git checkout H &&
|
||||
! git merge E &&
|
||||
echo 23 > file1 &&
|
||||
git add file1 &&
|
||||
git commit -m L &&
|
||||
git checkout branch2 &&
|
||||
echo 4 > file1 &&
|
||||
git commit -a -m G2 &&
|
||||
test_commit L2 file1 23 &&
|
||||
git checkout I &&
|
||||
test_commit G3 file1 4 &&
|
||||
! git merge E &&
|
||||
echo 24 > file1 &&
|
||||
git add file1 &&
|
||||
git commit -m J &&
|
||||
echo file7 > file7 &&
|
||||
git add file7 &&
|
||||
git commit -m K &&
|
||||
! GIT_EDITOR=: git rebase -i -p branch1 &&
|
||||
test_commit J2 file1 24 &&
|
||||
test_commit K2 file7 file7 &&
|
||||
test_must_fail git rebase -i -p L2 &&
|
||||
echo 234 > file1 &&
|
||||
git add file1 &&
|
||||
GIT_EDITOR=: git rebase --continue &&
|
||||
test $(git rev-parse branch2^^^) = $(git rev-parse branch1) &&
|
||||
git rebase --continue &&
|
||||
test $(git rev-parse HEAD^^^) = $(git rev-parse L2) &&
|
||||
test "234" = "$(cat file1)" &&
|
||||
test "" = "$(cat file6)" &&
|
||||
test "file7" = "$(cat file7)" &&
|
||||
|
||||
git checkout branch1 &&
|
||||
git reset --hard H &&
|
||||
git checkout branch2 &&
|
||||
git reset --hard I
|
||||
test "I" = "$(cat file6)" &&
|
||||
test "file7" = "$(cat file7)"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user