summaryrefslogtreecommitdiff
path: root/t/t8003-blame.sh
diff options
context:
space:
mode:
authorDavid Reiss <dreiss@facebook.com>2009-12-22 18:51:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-12-22 19:51:17 (GMT)
commitc8cba79181abc139d7cba364bf868875426fc2c1 (patch)
treefbe48748ccb1778d9173bf2816ef8a0812e222b2 /t/t8003-blame.sh
parente49ca974d6ff2dda1ff4ee39e7cc33af33d1eb2a (diff)
downloadgit-c8cba79181abc139d7cba364bf868875426fc2c1.zip
git-c8cba79181abc139d7cba364bf868875426fc2c1.tar.gz
git-c8cba79181abc139d7cba364bf868875426fc2c1.tar.bz2
Prevent git blame from segfaulting on a missing author name
The human-readable author and committer name can be missing from commits imported from foreign SCM interfaces. Make sure we parse the "author" and "committer" line a bit more leniently and avoid segfaulting by assuming the name always exists. Signed-off-by: David Reiss <dreiss@facebook.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t8003-blame.sh')
-rwxr-xr-xt/t8003-blame.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/t/t8003-blame.sh b/t/t8003-blame.sh
index 13c25f1..ad834f2 100755
--- a/t/t8003-blame.sh
+++ b/t/t8003-blame.sh
@@ -144,4 +144,17 @@ test_expect_success 'blame path that used to be a directory' '
git blame HEAD^.. -- path
'
+test_expect_success 'blame to a commit with no author name' '
+ TREE=`git rev-parse HEAD:`
+ cat >badcommit <<EOF
+tree $TREE
+author <noname> 1234567890 +0000
+committer David Reiss <dreiss@facebook.com> 1234567890 +0000
+
+some message
+EOF
+ COMMIT=`git hash-object -t commit -w badcommit`
+ git --no-pager blame $COMMIT -- uno >/dev/null
+'
+
test_done