Merge branch 'sb/rebase'
* sb/rebase: t3404: stricter tests for git-rebase--interactive api-builtin.txt: update and fix typo
This commit is contained in:
commit
e2da671a64
@ -96,6 +96,7 @@ chmod a+x fake-editor.sh
|
||||
|
||||
test_expect_success 'no changes are a nop' '
|
||||
git rebase -i F &&
|
||||
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" &&
|
||||
test $(git rev-parse I) = $(git rev-parse HEAD)
|
||||
'
|
||||
|
||||
@ -104,14 +105,26 @@ test_expect_success 'test the [branch] option' '
|
||||
git rm file6 &&
|
||||
git commit -m "stop here" &&
|
||||
git rebase -i F branch2 &&
|
||||
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" &&
|
||||
test $(git rev-parse I) = $(git rev-parse branch2) &&
|
||||
test $(git rev-parse I) = $(git rev-parse HEAD)
|
||||
'
|
||||
|
||||
test_expect_success 'test --onto <branch>' '
|
||||
git checkout -b test-onto branch2 &&
|
||||
git rebase -i --onto branch1 F &&
|
||||
test "$(git symbolic-ref -q HEAD)" = "refs/heads/test-onto" &&
|
||||
test $(git rev-parse HEAD^) = $(git rev-parse branch1) &&
|
||||
test $(git rev-parse I) = $(git rev-parse branch2)
|
||||
'
|
||||
|
||||
test_expect_success 'rebase on top of a non-conflicting commit' '
|
||||
git checkout branch1 &&
|
||||
git tag original-branch1 &&
|
||||
git rebase -i branch2 &&
|
||||
test file6 = $(git diff --name-only original-branch1) &&
|
||||
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" &&
|
||||
test $(git rev-parse I) = $(git rev-parse branch2) &&
|
||||
test $(git rev-parse I) = $(git rev-parse HEAD~2)
|
||||
'
|
||||
|
||||
@ -144,9 +157,12 @@ EOF
|
||||
|
||||
test_expect_success 'stop on conflicting pick' '
|
||||
git tag new-branch1 &&
|
||||
! git rebase -i master &&
|
||||
test_must_fail git rebase -i master &&
|
||||
test "$(git rev-parse HEAD~3)" = "$(git rev-parse master)" &&
|
||||
test_cmp expect .git/.dotest-merge/patch &&
|
||||
test_cmp expect2 file1 &&
|
||||
test "$(git-diff --name-status |
|
||||
sed -n -e "/^U/s/^U[^a-z]*//p")" = file1 &&
|
||||
test 4 = $(grep -v "^#" < .git/.dotest-merge/done | wc -l) &&
|
||||
test 0 = $(grep -c "^[^#]" < .git/.dotest-merge/git-rebase-todo)
|
||||
'
|
||||
@ -154,6 +170,7 @@ test_expect_success 'stop on conflicting pick' '
|
||||
test_expect_success 'abort' '
|
||||
git rebase --abort &&
|
||||
test $(git rev-parse new-branch1) = $(git rev-parse HEAD) &&
|
||||
test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" &&
|
||||
! test -d .git/.dotest-merge
|
||||
'
|
||||
|
||||
@ -213,7 +230,7 @@ test_expect_success 'preserve merges with -p' '
|
||||
|
||||
test_expect_success '--continue tries to commit' '
|
||||
test_tick &&
|
||||
! git rebase -i --onto new-branch1 HEAD^ &&
|
||||
test_must_fail git rebase -i --onto new-branch1 HEAD^ &&
|
||||
echo resolved > file1 &&
|
||||
git add file1 &&
|
||||
FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue &&
|
||||
@ -224,7 +241,7 @@ test_expect_success '--continue tries to commit' '
|
||||
test_expect_success 'verbose flag is heeded, even after --continue' '
|
||||
git reset --hard HEAD@{1} &&
|
||||
test_tick &&
|
||||
! git rebase -v -i --onto new-branch1 HEAD^ &&
|
||||
test_must_fail git rebase -v -i --onto new-branch1 HEAD^ &&
|
||||
echo resolved > file1 &&
|
||||
git add file1 &&
|
||||
git rebase --continue > output &&
|
||||
@ -259,10 +276,14 @@ test_expect_success 'interrupted squash works as expected' '
|
||||
git commit -m $n
|
||||
done &&
|
||||
one=$(git rev-parse HEAD~3) &&
|
||||
! FAKE_LINES="1 squash 3 2" git rebase -i HEAD~3 &&
|
||||
(
|
||||
FAKE_LINES="1 squash 3 2" &&
|
||||
export FAKE_LINES &&
|
||||
test_must_fail git rebase -i HEAD~3
|
||||
) &&
|
||||
(echo one; echo two; echo four) > conflict &&
|
||||
git add conflict &&
|
||||
! git rebase --continue &&
|
||||
test_must_fail git rebase --continue &&
|
||||
echo resolved > conflict &&
|
||||
git add conflict &&
|
||||
git rebase --continue &&
|
||||
@ -277,13 +298,17 @@ test_expect_success 'interrupted squash works as expected (case 2)' '
|
||||
git commit -m $n
|
||||
done &&
|
||||
one=$(git rev-parse HEAD~3) &&
|
||||
! FAKE_LINES="3 squash 1 2" git rebase -i HEAD~3 &&
|
||||
(
|
||||
FAKE_LINES="3 squash 1 2" &&
|
||||
export FAKE_LINES &&
|
||||
test_must_fail git rebase -i HEAD~3
|
||||
) &&
|
||||
(echo one; echo four) > conflict &&
|
||||
git add conflict &&
|
||||
! git rebase --continue &&
|
||||
test_must_fail git rebase --continue &&
|
||||
(echo one; echo two; echo four) > conflict &&
|
||||
git add conflict &&
|
||||
! git rebase --continue &&
|
||||
test_must_fail git rebase --continue &&
|
||||
echo resolved > conflict &&
|
||||
git add conflict &&
|
||||
git rebase --continue &&
|
||||
@ -331,7 +356,7 @@ test_expect_success 'rebase a commit violating pre-commit' '
|
||||
chmod a+x $PRE_COMMIT &&
|
||||
echo "monde! " >> file1 &&
|
||||
test_tick &&
|
||||
! git commit -m doesnt-verify file1 &&
|
||||
test_must_fail git commit -m doesnt-verify file1 &&
|
||||
git commit -m doesnt-verify --no-verify file1 &&
|
||||
test_tick &&
|
||||
FAKE_LINES=2 git rebase -i HEAD~2
|
||||
|
Loading…
Reference in New Issue
Block a user