diff options
author | Vincent Ambo <Vincent Ambo> | 2020-01-11T23·36+0000 |
---|---|---|
committer | Vincent Ambo <Vincent Ambo> | 2020-01-11T23·36+0000 |
commit | 1b593e1ea4d2af0f6444d9a7788d5d99abd6fde5 (patch) | |
tree | e3accb9beed5c4c1b5a05c99db71ab2841f0ed04 /t/t3405-rebase-malformed.sh |
Squashed 'third_party/git/' content from commit cb71568594
git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7
Diffstat (limited to 't/t3405-rebase-malformed.sh')
-rwxr-xr-x | t/t3405-rebase-malformed.sh | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/t/t3405-rebase-malformed.sh b/t/t3405-rebase-malformed.sh new file mode 100755 index 000000000000..860e63e444d2 --- /dev/null +++ b/t/t3405-rebase-malformed.sh @@ -0,0 +1,90 @@ +#!/bin/sh + +test_description='rebase should handle arbitrary git message' + +. ./test-lib.sh +. "$TEST_DIRECTORY"/lib-rebase.sh + +cat >F <<\EOF +This is an example of a commit log message +that does not conform to git commit convention. + +It has two paragraphs, but its first paragraph is not friendly +to oneline summary format. +EOF + +cat >G <<\EOF +commit log message containing a diff +EOF + + +test_expect_success setup ' + + >file1 && + >file2 && + git add file1 file2 && + test_tick && + git commit -m "Initial commit" && + git branch diff-in-message && + git branch empty-message-merge && + + git checkout -b multi-line-subject && + cat F >file2 && + git add file2 && + test_tick && + git commit -F F && + + git cat-file commit HEAD | sed -e "1,/^\$/d" >F0 && + + git checkout diff-in-message && + echo "commit log message containing a diff" >G && + echo "" >>G && + cat G >file2 && + git add file2 && + git diff --cached >>G && + test_tick && + git commit -F G && + + git cat-file commit HEAD | sed -e "1,/^\$/d" >G0 && + + git checkout empty-message-merge && + echo file3 >file3 && + git add file3 && + git commit --allow-empty-message -m "" && + + git checkout master && + + echo One >file1 && + test_tick && + git add file1 && + git commit -m "Second commit" +' + +test_expect_success 'rebase commit with multi-line subject' ' + + git rebase master multi-line-subject && + git cat-file commit HEAD | sed -e "1,/^\$/d" >F1 && + + test_cmp F0 F1 && + test_cmp F F0 +' + +test_expect_success 'rebase commit with diff in message' ' + git rebase master diff-in-message && + git cat-file commit HEAD | sed -e "1,/^$/d" >G1 && + test_cmp G0 G1 && + test_cmp G G0 +' + +test_expect_success 'rebase -m commit with empty message' ' + git rebase -m master empty-message-merge +' + +test_expect_success 'rebase -i commit with empty message' ' + git checkout diff-in-message && + set_fake_editor && + test_must_fail env FAKE_COMMIT_MESSAGE=" " FAKE_LINES="reword 1" \ + git rebase -i HEAD^ +' + +test_done |