aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-06-22 08:30:44 -0700
committerJunio C Hamano <gitster@pobox.com>2010-06-22 08:30:44 -0700
commit0d2416e06003da954f0335248c3dc7f76a3735e3 (patch)
tree51feb2bf8a2fadda52a8a293e63fe1d62502288f /t
parent21919d396a3a05ccb8d6b538b246500f01585bb7 (diff)
parentfb7749e4e4d4d9fef61f35b2f8b40f80c2d5942f (diff)
downloadgit-0d2416e06003da954f0335248c3dc7f76a3735e3.tar.gz
git-0d2416e06003da954f0335248c3dc7f76a3735e3.tar.xz
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-xt/t7509-commit.sh46
1 files changed, 46 insertions, 0 deletions
diff --git a/t/t7509-commit.sh b/t/t7509-commit.sh
index d52c060b0..3ea33db6c 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 &&