Merge branch 'jk/shortlog-tolerate-broken-commit'

* jk/shortlog-tolerate-broken-commit:
  shortlog: ignore commits with missing authors
This commit is contained in:
Jonathan Nieder 2013-09-24 23:29:00 -07:00
commit 7f794aab3e
2 changed files with 20 additions and 2 deletions

View File

@ -127,9 +127,11 @@ void shortlog_add_commit(struct shortlog *log, struct commit *commit)
author = buffer + 7;
buffer = eol;
}
if (!author)
die(_("Missing author: %s"),
if (!author) {
warning(_("Missing author: %s"),
sha1_to_hex(commit->object.sha1));
return;
}
if (log->user_format) {
struct pretty_print_context ctx = {0};
ctx.fmt = CMIT_FMT_USERFORMAT;

View File

@ -172,4 +172,20 @@ test_expect_success 'shortlog encoding' '
git shortlog HEAD~2.. > out &&
test_cmp expect out'
test_expect_success 'shortlog ignores commits with missing authors' '
git commit --allow-empty -m normal &&
git commit --allow-empty -m soon-to-be-broken &&
git cat-file commit HEAD >commit.tmp &&
sed "/^author/d" commit.tmp >broken.tmp &&
commit=$(git hash-object -w -t commit --stdin <broken.tmp) &&
git update-ref HEAD $commit &&
cat >expect <<-\EOF &&
A U Thor (1):
normal
EOF
git shortlog HEAD~2.. >actual &&
test_cmp expect actual
'
test_done