[PATCH v3 4/5] contrib: contacts: add mailmap support
From: Eric Sunshine <hidden>
Date: 2016-06-15 22:58:13
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- contrib/contacts/git-contacts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts
index 4553add..d80f7d1 100755
--- a/contrib/contacts/git-contacts
+++ b/contrib/contacts/git-contacts@@ -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) {
--
1.8.3.3.803.gd114dc6