diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-06-22 19:30:44 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-06-22 19:30:44 +0400 |
commit | 0d2416e06003da954f0335248c3dc7f76a3735e3 (patch) | |
tree | 51feb2bf8a2fadda52a8a293e63fe1d62502288f /t | |
parent | 21919d396a3a05ccb8d6b538b246500f01585bb7 (diff) | |
parent | fb7749e4e4d4d9fef61f35b2f8b40f80c2d5942f (diff) |
Merge branch 'jn/maint-amend-missing-name' into maint
* jn/maint-amend-missing-name:
commit --amend: cope with missing display name
Diffstat (limited to 't')
-rwxr-xr-x | t/t7509-commit.sh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/t/t7509-commit.sh b/t/t7509-commit.sh index d52c060b06..3ea33db6c7 100755 --- a/t/t7509-commit.sh +++ b/t/t7509-commit.sh @@ -83,6 +83,52 @@ test_expect_success '--amend option copies authorship' ' test_cmp expect actual ' +sha1_file() { + echo "$*" | sed "s#..#.git/objects/&/#" +} +remove_object() { + rm -f $(sha1_file "$*") +} +no_reflog() { + cp .git/config .git/config.saved && + echo "[core] logallrefupdates = false" >>.git/config && + test_when_finished "mv -f .git/config.saved .git/config" && + + if test -e .git/logs + then + mv .git/logs . && + test_when_finished "mv logs .git/" + fi +} + +test_expect_success '--amend option with empty author' ' + git cat-file commit Initial >tmp && + sed "s/author [^<]* </author </" tmp >empty-author && + no_reflog && + sha=$(git hash-object -t commit -w empty-author) && + test_when_finished "remove_object $sha" && + git checkout $sha && + test_when_finished "git checkout Initial" && + echo "Empty author test" >>foo && + test_tick && + ! git commit -a -m "empty author" --amend 2>err && + grep "empty ident" err +' + +test_expect_success '--amend option with missing author' ' + git cat-file commit Initial >tmp && + sed "s/author [^<]* </author </" tmp >malformed && + no_reflog && + sha=$(git hash-object -t commit -w malformed) && + test_when_finished "remove_object $sha" && + git checkout $sha && + test_when_finished "git checkout Initial" && + echo "Missing author test" >>foo && + test_tick && + ! git commit -a -m "malformed author" --amend 2>err && + grep "empty ident" err +' + test_expect_success '--reset-author makes the commit ours even with --amend option' ' git checkout Initial && echo "Test 6" >>foo && |