зеркало из https://github.com/microsoft/git.git
Merge branch 'jk/shortlog-tolerate-broken-commit' into maint
"git shortlog" used to choke and die when there is a malformed commit (e.g. missing authors); it now simply ignore such a commit and keeps going. * jk/shortlog-tolerate-broken-commit: shortlog: ignore commits with missing authors
This commit is contained in:
Коммит
77bc4302dc
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче