t4254: modernize tests
[gitweb.git] / t / t3404-rebase-interactive.sh
index d6b414377306de88e8e294dd5eaadfcb3a234ec2..4dbeddb0de17eb9fa87fbed98daabcb180235555 100755 (executable)
@@ -926,6 +926,21 @@ test_expect_success 'rebase --edit-todo can be used to modify todo' '
        test L = $(git cat-file commit HEAD | sed -ne \$p)
 '
 
+test_expect_success 'rebase -i produces readable reflog' '
+       git reset --hard &&
+       git branch -f branch-reflog-test H &&
+       git rebase -i --onto I F branch-reflog-test &&
+       cat >expect <<-\EOF &&
+       rebase -i (start): checkout I
+       rebase -i (pick): G
+       rebase -i (pick): H
+       rebase -i (finish): returning to refs/heads/branch-reflog-test
+       EOF
+       tail -n 4 .git/logs/HEAD |
+       sed -e "s/.*    //" >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'rebase -i respects core.commentchar' '
        git reset --hard &&
        git checkout E^0 &&
@@ -950,4 +965,28 @@ test_expect_success 'rebase -i, with <onto> and <upstream> specified as :/quuxer
        git checkout branch1
 '
 
+test_expect_success 'rebase -i with --strategy and -X' '
+       git checkout -b conflict-merge-use-theirs conflict-branch &&
+       git reset --hard HEAD^ &&
+       echo five >conflict &&
+       echo Z >file1 &&
+       git commit -a -m "one file conflict" &&
+       EDITOR=true git rebase -i --strategy=recursive -Xours conflict-branch &&
+       test $(git show conflict-branch:conflict) = $(cat conflict) &&
+       test $(cat file1) = Z
+'
+
+test_expect_success 'rebase -i error on commits with \ in message' '
+       current_head=$(git rev-parse HEAD)
+       test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" &&
+       test_commit TO-REMOVE will-conflict old-content &&
+       test_commit "\temp" will-conflict new-content dummy &&
+       (
+       EDITOR=true &&
+       export EDITOR &&
+       test_must_fail git rebase -i HEAD^ --onto HEAD^^ 2>error
+       ) &&
+       test_expect_code 1 grep  "      emp" error
+'
+
 test_done