contrib: contacts: add mailmap support
The purpose of git-contacts is to determine a list of people who might have some interest in a patch or set of changes. It can be used as git-send-email's --cc-cmd argument or the computed list might be used to ask for comments on a proposed change. As such, it is important to report up-to-date email addresses in the computed list rather than potentially outdated ones recorded with commits. Apply git's mailmap functionality to the retrieved contacts in order to achieve this goal. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ccf6b45aff
commit
7c6d6ff8f1
@ -133,6 +133,23 @@ sub scan_rev_args {
|
||||
close $f;
|
||||
}
|
||||
|
||||
sub mailmap_contacts {
|
||||
my ($contacts) = @_;
|
||||
my %mapped;
|
||||
my $pid = open2 my $reader, my $writer, qw(git check-mailmap --stdin);
|
||||
for my $contact (keys(%$contacts)) {
|
||||
print $writer "$contact\n";
|
||||
my $canonical = <$reader>;
|
||||
chomp $canonical;
|
||||
$mapped{$canonical} += $contacts->{$contact};
|
||||
}
|
||||
close $reader;
|
||||
close $writer;
|
||||
waitpid($pid, 0);
|
||||
die "git-check-mailmap error: $?\n" if $?;
|
||||
return \%mapped;
|
||||
}
|
||||
|
||||
if (!@ARGV) {
|
||||
die "No input revisions or patch files\n";
|
||||
}
|
||||
@ -161,6 +178,7 @@ for my $commit (values %commits) {
|
||||
$contacts->{$contact}++;
|
||||
}
|
||||
}
|
||||
$contacts = mailmap_contacts($contacts);
|
||||
|
||||
my $ncommits = scalar(keys %commits);
|
||||
for my $contact (keys %$contacts) {
|
||||
|
Loading…
Reference in New Issue
Block a user