diff options
Diffstat (limited to 'git-shortlog.perl')
-rwxr-xr-x | git-shortlog.perl | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/git-shortlog.perl b/git-shortlog.perl deleted file mode 100755 index 0b14f833ee..0000000000 --- a/git-shortlog.perl +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/perl -w - -use strict; - -my (%mailmap); -my (%email); -my (%map); -my $pstate = 1; -my $n_records = 0; -my $n_output = 0; - -sub shortlog_entry($$) { - my ($name, $desc) = @_; - my $key = $name; - - $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g; - $desc =~ s#\[PATCH\] ##g; - - # store description in array, in email->{desc list} map - if (exists $map{$key}) { - # grab ref - my $obj = $map{$key}; - - # add desc to array - push(@$obj, $desc); - } else { - # create new array, containing 1 item - my @arr = ($desc); - - # store ref to array - $map{$key} = \@arr; - } -} - -# sort comparison function -sub by_name($$) { - my ($a, $b) = @_; - - uc($a) cmp uc($b); -} - -sub shortlog_output { - my ($obj, $key, $desc); - - foreach $key (sort by_name keys %map) { - # output author - printf "%s:\n", $key; - - # output author's 1-line summaries - $obj = $map{$key}; - foreach $desc (reverse @$obj) { - print " $desc\n"; - $n_output++; - } - - # blank line separating author from next author - print "\n"; - } -} - -sub changelog_input { - my ($author, $desc); - - while (<>) { - # get author and email - if ($pstate == 1) { - my ($email); - - next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/; - - $n_records++; - - $author = $1; - $email = $2; - $desc = undef; - - # cset author fixups - if (exists $mailmap{$email}) { - $author = $mailmap{$email}; - } elsif (exists $mailmap{$author}) { - $author = $mailmap{$author}; - } elsif (!$author) { - $author = $email; - } - $email{$author}{$email}++; - $pstate++; - } - - # skip to blank line - elsif ($pstate == 2) { - next unless /^\s*$/; - $pstate++; - } - - # skip to non-blank line - elsif ($pstate == 3) { - next unless /^\s*?(.*)/; - - # skip lines that are obviously not - # a 1-line cset description - next if /^\s*From: /; - - chomp; - $desc = $1; - - &shortlog_entry($author, $desc); - - $pstate = 1; - } - - else { - die "invalid parse state $pstate"; - } - } -} - -sub read_mailmap { - my ($fh, $mailmap) = @_; - while (<$fh>) { - chomp; - if (/^([^#].*?)\s*<(.*)>/) { - $mailmap->{$2} = $1; - } - } -} - -sub setup_mailmap { - read_mailmap(\*DATA, \%mailmap); - if (-f '.mailmap') { - my $fh = undef; - open $fh, '<', '.mailmap'; - read_mailmap($fh, \%mailmap); - close $fh; - } -} - -sub finalize { - #print "\n$n_records records parsed.\n"; - - if ($n_records != $n_output) { - die "parse error: input records != output records\n"; - } - if (0) { - for my $author (sort keys %email) { - my $e = $email{$author}; - for my $email (sort keys %$e) { - print STDERR "$author <$email>\n"; - } - } - } -} - -&setup_mailmap; -&changelog_input; -&shortlog_output; -&finalize; -exit(0); - - -__DATA__ -# -# Even with git, we don't always have name translations. -# So have an email->real name table to translate the -# (hopefully few) missing names -# -Adrian Bunk <bunk@stusta.de> -Andreas Herrmann <aherrman@de.ibm.com> -Andrew Morton <akpm@osdl.org> -Andrew Vasquez <andrew.vasquez@qlogic.com> -Christoph Hellwig <hch@lst.de> -Corey Minyard <minyard@acm.org> -David Woodhouse <dwmw2@shinybook.infradead.org> -Domen Puncer <domen@coderock.org> -Douglas Gilbert <dougg@torque.net> -Ed L Cashin <ecashin@coraid.com> -Evgeniy Polyakov <johnpol@2ka.mipt.ru> -Felix Moeller <felix@derklecks.de> -Frank Zago <fzago@systemfabricworks.com> -Greg Kroah-Hartman <gregkh@suse.de> -James Bottomley <jejb@mulgrave.(none)> -James Bottomley <jejb@titanic.il.steeleye.com> -Jeff Garzik <jgarzik@pretzel.yyz.us> -Jens Axboe <axboe@suse.de> -Kay Sievers <kay.sievers@vrfy.org> -Mitesh shah <mshah@teja.com> -Morten Welinder <terra@gnome.org> -Morten Welinder <welinder@anemone.rentec.com> -Morten Welinder <welinder@darter.rentec.com> -Morten Welinder <welinder@troll.com> -Nguyen Anh Quynh <aquynh@gmail.com> -Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> -Peter A Jonsson <pj@ludd.ltu.se> -Ralf Wildenhues <Ralf.Wildenhues@gmx.de> -Rudolf Marek <R.Marek@sh.cvut.cz> -Rui Saraiva <rmps@joel.ist.utl.pt> -Sachin P Sant <ssant@in.ibm.com> -Santtu Hyrkk,Av(B <santtu.hyrkko@gmail.com> -Simon Kelley <simon@thekelleys.org.uk> -Tejun Heo <htejun@gmail.com> -Tony Luck <tony.luck@intel.com> |