diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-01-21 01:42:04 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-21 01:42:04 +0300 |
commit | cea20f24738c558d56483402db1ddfebd0362ee4 (patch) | |
tree | 2d5010857dd1d87b4b5735dea3d423acb68836fb /t | |
parent | cc6b41cc7d38c1b2de9809c0995087a2378d27ec (diff) | |
parent | f59baa502f49c3f1579a82bc37d2bb3ce9e7b5da (diff) |
Merge branch 'ns/rebase-auto-squash'
* ns/rebase-auto-squash:
rebase -i --autosquash: auto-squash commits
Conflicts:
git-rebase--interactive.sh
Diffstat (limited to 't')
-rwxr-xr-x | t/t3415-rebase-autosquash.sh | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/t/t3415-rebase-autosquash.sh b/t/t3415-rebase-autosquash.sh new file mode 100755 index 0000000000..b63f4e2d67 --- /dev/null +++ b/t/t3415-rebase-autosquash.sh @@ -0,0 +1,73 @@ +#!/bin/sh + +test_description='auto squash' + +. ./test-lib.sh + +test_expect_success setup ' + echo 0 >file0 && + git add . && + test_tick && + git commit -m "initial commit" && + echo 0 >file1 && + echo 2 >file2 && + git add . && + test_tick && + git commit -m "first commit" && + echo 3 >file3 && + git add . && + test_tick && + git commit -m "second commit" && + git tag base +' + +test_expect_success 'auto fixup' ' + git reset --hard base && + echo 1 >file1 && + git add -u && + test_tick && + git commit -m "fixup! first" + + git tag final-fixup && + test_tick && + git rebase --autosquash -i HEAD^^^ && + git log --oneline >actual && + test 3 = $(wc -l <actual) && + git diff --exit-code final-fixup && + test 1 = "$(git cat-file blob HEAD^:file1)" && + test 1 = $(git cat-file commit HEAD^ | grep first | wc -l) +' + +test_expect_success 'auto squash' ' + git reset --hard base && + echo 1 >file1 && + git add -u && + test_tick && + git commit -m "squash! first" + + git tag final-squash && + test_tick && + git rebase --autosquash -i HEAD^^^ && + git log --oneline >actual && + test 3 = $(wc -l <actual) && + git diff --exit-code final-squash && + test 1 = "$(git cat-file blob HEAD^:file1)" && + test 2 = $(git cat-file commit HEAD^ | grep first | wc -l) +' + +test_expect_success 'misspelled auto squash' ' + git reset --hard base && + echo 1 >file1 && + git add -u && + test_tick && + git commit -m "squash! forst" + git tag final-missquash && + test_tick && + git rebase --autosquash -i HEAD^^^ && + git log --oneline >actual && + test 4 = $(wc -l <actual) && + git diff --exit-code final-missquash && + test 0 = $(git rev-list final-missquash...HEAD | wc -l) +' + +test_done |