Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
t3404: stricter tests for git-rebase--interactive
author
Stephan Beyer
<s-beyer@gmx.net>
Sat, 21 Jun 2008 23:55:50 +0000
(
01:55
+0200)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 23 Jun 2008 01:02:28 +0000
(18:02 -0700)
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3404-rebase-interactive.sh
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
8c6cfcd
)
diff --git
a/t/t3404-rebase-interactive.sh
b/t/t3404-rebase-interactive.sh
index b9e3dbd242cc92710d1c689ca5412619e46ee63f..1c80148dd5b7b69d4e1d74df0c609a4eee92ee98 100755
(executable)
--- a/
t/t3404-rebase-interactive.sh
+++ b/
t/t3404-rebase-interactive.sh
@@
-96,6
+96,7
@@
chmod a+x fake-editor.sh
test_expect_success 'no changes are a nop' '
git rebase -i F &&
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)
'
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 &&
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 $(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_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)
'
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 &&
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_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)
'
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_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
'
! 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 &&
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 &&
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 &&
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 &&
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) &&
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 &&
(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 &&
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) &&
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 &&
(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 &&
(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 &&
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 &&
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
git commit -m doesnt-verify --no-verify file1 &&
test_tick &&
FAKE_LINES=2 git rebase -i HEAD~2