~ubuntu-branches/ubuntu/intrepid/git-core/intrepid-updates

« back to all changes in this revision

Viewing changes to contrib/stats/mailmap.pl

  • Committer: Package Import Robot
  • Author(s): Gerrit Pape
  • Date: 2007-10-04 08:27:01 UTC
  • mfrom: (1.1.23)
  • Revision ID: package-import@ubuntu.com-20071004082701-rsd058ontoqz4i30
Tags: 1:1.5.3.4-1
new upstream point release (closes: #445188).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl -w
 
2
my %mailmap = ();
 
3
open I, "<", ".mailmap";
 
4
while (<I>) {
 
5
        chomp;
 
6
        next if /^#/;
 
7
        if (my ($author, $mail) = /^(.*?)\s+<(.+)>$/) {
 
8
                $mailmap{$mail} = $author;
 
9
        }
 
10
}
 
11
close I;
 
12
 
 
13
my %mail2author = ();
 
14
open I, "git log --pretty='format:%ae   %an' |";
 
15
while (<I>) {
 
16
        chomp;
 
17
        my ($mail, $author) = split(/\t/, $_);
 
18
        next if exists $mailmap{$mail};
 
19
        $mail2author{$mail} ||= {};
 
20
        $mail2author{$mail}{$author} ||= 0;
 
21
        $mail2author{$mail}{$author}++;
 
22
}
 
23
close I;
 
24
 
 
25
while (my ($mail, $authorcount) = each %mail2author) {
 
26
        # %$authorcount is ($author => $count);
 
27
        # sort and show the names from the most frequent ones.
 
28
        my @names = (map { $_->[0] }
 
29
                sort { $b->[1] <=> $a->[1] }
 
30
                map { [$_, $authorcount->{$_}] }
 
31
                keys %$authorcount);
 
32
        if (1 < @names) {
 
33
                for (@names) {
 
34
                        print "$_ <$mail>\n";
 
35
                }
 
36
        }
 
37
}
 
38