diff options
-rwxr-xr-x | t/t3410-rebase-preserve-dropped-merges.sh | 124 |
1 files changed, 35 insertions, 89 deletions
diff --git a/t/t3410-rebase-preserve-dropped-merges.sh b/t/t3410-rebase-preserve-dropped-merges.sh index 5816415aaf..c49143a1a4 100755 --- a/t/t3410-rebase-preserve-dropped-merges.sh +++ b/t/t3410-rebase-preserve-dropped-merges.sh @@ -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 |