diff options
Diffstat (limited to 't/t3400-rebase.sh')
-rwxr-xr-x | t/t3400-rebase.sh | 58 |
1 files changed, 50 insertions, 8 deletions
diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh index 7f62bfb9dd..dbf7dfba9b 100755 --- a/t/t3400-rebase.sh +++ b/t/t3400-rebase.sh @@ -3,9 +3,10 @@ # Copyright (c) 2005 Amos Waterland # -test_description='git rebase should not destroy author information +test_description='git rebase assorted tests -This test runs git rebase and checks that the author information is not lost. +This test runs git rebase and checks that the author information is not lost +among other things. ' . ./test-lib.sh @@ -54,8 +55,8 @@ test_expect_success 'rebase against master' ' git rebase master' test_expect_success 'rebase against master twice' ' - git rebase master 2>err && - grep "Current branch my-topic-branch is up to date" err + git rebase master >out && + grep "Current branch my-topic-branch is up to date" out ' test_expect_success 'rebase against master twice with --force' ' @@ -65,14 +66,14 @@ test_expect_success 'rebase against master twice with --force' ' test_expect_success 'rebase against master twice from another branch' ' git checkout my-topic-branch^ && - git rebase master my-topic-branch 2>err && - grep "Current branch my-topic-branch is up to date" err + git rebase master my-topic-branch >out && + grep "Current branch my-topic-branch is up to date" out ' test_expect_success 'rebase fast-forward to master' ' git checkout my-topic-branch^ && - git rebase my-topic-branch 2>err && - grep "Fast-forwarded HEAD to my-topic-branch" err + git rebase my-topic-branch >out && + grep "Fast-forwarded HEAD to my-topic-branch" out ' test_expect_success \ @@ -126,4 +127,45 @@ test_expect_success 'Show verbose error when HEAD could not be detached' ' grep "Untracked working tree file .B. would be overwritten" output.err ' +test_expect_success 'rebase -q is quiet' ' + rm B && + git checkout -b quiet topic && + git rebase -q master > output.out 2>&1 && + test ! -s output.out +' + +test_expect_success 'Rebase a commit that sprinkles CRs in' ' + ( + echo "One" + echo "TwoQ" + echo "Three" + echo "FQur" + echo "Five" + ) | q_to_cr >CR && + git add CR && + test_tick && + git commit -a -m "A file with a line with CR" && + git tag file-with-cr && + git checkout HEAD^0 && + git rebase --onto HEAD^^ HEAD^ && + git diff --exit-code file-with-cr:CR HEAD:CR +' + +test_expect_success 'rebase can copy notes' ' + git config notes.rewrite.rebase true && + git config notes.rewriteRef "refs/notes/*" && + test_commit n1 && + test_commit n2 && + test_commit n3 && + git notes add -m"a note" n3 && + git rebase --onto n1 n2 && + test "a note" = "$(git notes show HEAD)" +' + +test_expect_success 'rebase -m can copy notes' ' + git reset --hard n3 && + git rebase -m --onto n1 n2 && + test "a note" = "$(git notes show HEAD)" +' + test_done |