Jeff King <peff@xxxxxxxx> writes: > After thinking on this, I'm in favor of removing this warning entirely. > My reasons are given in the commit message below, which can apply on top > of the series. It could also be squashed in to 2/6, but given that it > is removing the test added by cd4f09e (shortlog: ignore commits with > missing authors, 2013-09-18), I think it's worth recording as a separate > commit. I agree 100% with the reasoning. Thanks for thinking things through. > > -- >8 -- > Subject: [PATCH] shortlog: don't warn on empty author > > Git tries to avoid creating a commit with an empty author > name or email. However, commits created by older, less > strict versions of git may still be in the history. There's > not much point in issuing a warning to stderr for an empty > author. The user can't do anything about it now, and we are > better off to simply include it in the shortlog output as an > empty name/email, and let the caller process it however they > see fit. > > Older versions of shortlog differentiated between "author > header not present" (which complained) and "author > name/email are blank" (which included the empty ident in the > output). But since switching to format_commit_message, we > complain to stderr about either case (linux.git has a blank > author deep in its history which triggers this). > > We could try to restore the older behavior (complaining only > about the missing header), but in retrospect, there's not > much point in differentiating these cases. A missing > author header is bogus, but as for the "blank" case, the > only useful behavior is to add it to the "empty name" > collection. > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > builtin/shortlog.c | 8 -------- > t/t4201-shortlog.sh | 16 ---------------- > 2 files changed, 24 deletions(-) > > diff --git a/builtin/shortlog.c b/builtin/shortlog.c > index adbf1fd..e32be39 100644 > --- a/builtin/shortlog.c > +++ b/builtin/shortlog.c > @@ -149,13 +149,6 @@ void shortlog_add_commit(struct shortlog *log, struct commit *commit) > ctx.output_encoding = get_log_output_encoding(); > > format_commit_message(commit, "%an <%ae>", &author, &ctx); > - /* we can detect a total failure only by seeing " <>" in the output */ > - if (author.len <= 3) { > - warning(_("Missing author: %s"), > - oid_to_hex(&commit->object.oid)); > - goto out; > - } > - > if (!log->summary) { > if (log->user_format) > pretty_print_commit(&ctx, commit, &oneline); > @@ -165,7 +158,6 @@ void shortlog_add_commit(struct shortlog *log, struct commit *commit) > > insert_one_record(log, author.buf, oneline.len ? oneline.buf : "<none>"); > > -out: > strbuf_release(&author); > strbuf_release(&oneline); > } > diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh > index 82b2314..f5e6367 100755 > --- a/t/t4201-shortlog.sh > +++ b/t/t4201-shortlog.sh > @@ -178,22 +178,6 @@ test_expect_success !MINGW '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_expect_success 'shortlog with revision pseudo options' ' > git shortlog --all && > git shortlog --branches && -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html