开发者

List of authors in git since a given commit

I want a way to list all git authors that

  1. Is only since a given commit.
  2. Is unique.

These two are easy, and I've seen some solutions to this online, most using git log --format. But none that I saw fits the additional requirements:

  1. Is ordered by commit date. So if John Smith committed before Aaron Meurer, his name should appear before mine (I'm Aaron Meurer).
  2. Respects .mailmap. As far as I can tell, only git shortlog does this, and it gives a bunch of extra stuff开发者_开发技巧 that I don't want. But maybe I'm wrong. Or maybe those of you who are more handy with sed and friends than I am would just use that.

(by the way, how do I make Markdown not restart the numbering?)

I also want a way to order it by last name, but this is relatively easy.


Note for people who want "global stat":

git shortlog -s -n -e

Give the global stats commits by author.


The following format specifiers will solve your second concern:

%aN: author name (respecting .mailmap)
%aE: author email (respecting .mailmap)
%cN: committer name (respecting .mailmap)
%cE: committer email (respecting .mailmap)

So discounting the duplicate author part, you want something like

git log <commit>.. --format="%aN <%aE>" --reverse

I suspect you could pipe it through something that does a hash-table based deduplication, a perl oneliner would be trivial:

git log <commit>.. --format="%aN <%aE>" --reverse | perl -e 'my %dedupe; while (<STDIN>) { print unless $dedupe{$_}++}'
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜