[PATCH/RFC 2/4] contrib: contacts: add support for multiple patches
From: Eric Sunshine <hidden>
Date: 2016-06-15 22:57:57
Subsystem:
the rest · Maintainer:
Linus Torvalds
Accept multiple patch files rather than only one. For example: % git contacts feature/*.patch Signed-off-by: Eric Sunshine <redacted> --- contrib/contacts/git-contacts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts
index 9007bae..ab11670 100755
--- a/contrib/contacts/git-contacts
+++ b/contrib/contacts/git-contacts@@ -3,7 +3,7 @@ # List people who might be interested in a patch. Useful as the argument to # git-send-email --cc-cmd option, and in other situations. # -# Usage: git contacts <file> +# Usage: git contacts <file> ... use strict; use warnings;
@@ -13,6 +13,7 @@ my $since = '5-years-ago'; my $min_percent = 10; my $labels_rx = qr/(?:Signed-off|Reviewed|Acked)-by/; my $id_rx = qr/[0-9a-f]{40}/i; +my %seen; sub format_contact { my ($name, $email) = @_;
@@ -68,7 +69,9 @@ sub get_blame { while (<$f>) { if (/^$id_rx/o) { my $id = $&; - $commits->{$id} = { id => $id, contacts => {} }; + $commits->{$id} = { id => $id, contacts => {} } + unless $seen{$id}; + $seen{$id} = 1; } } close $f;
@@ -93,6 +96,7 @@ sub commits_from_patch { while (<$f>) { if (/^From ($id_rx) /o) { $id = $1; + $seen{$id} = 1; last; } }
@@ -100,10 +104,8 @@ sub commits_from_patch { close $f; } -exit 1 unless @ARGV == 1; - my %commits; -commits_from_patch(\%commits, $ARGV[0]); +commits_from_patch(\%commits, $_) for (@ARGV); import_commits(\%commits); my %count_per_person;
--
1.8.3.2