On 7/1/20 4:25 PM, Paolo Bonzini wrote: > On 29/06/20 19:27, Philippe Mathieu-Daudé wrote: >> Sometime emails get rejected and 'bounce'. It might take time >> between we report that, a patch is posted, reviewed, merged... >> >> To reduce time spent looking at bouncing emails in one mailbox, >> add the feature to simply ignore broken email addresses. The >> format is similar to the '.mailmap' file. Add an email address >> in your local '.ignoredmailmap. and get_maintainer.pl won't >> list it anymore. >> >> This is particularly useful when git-send-email is used with >> the --cc-cmd argument, like suggested in QEMU wiki: >> https://wiki.qemu.org/Contribute/SubmitAPatch#CC_the_relevant_maintainer >> >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > > Do you have such a list already?
$ cat .ignoredmailmap # # From man git-shortlog the forms are: # # Proper Name <com...@email.xx> # <pro...@email.xx> # Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com> Caio Carrara <ccarr...@redhat.com> Yongbok Kim <yongbok....@mips.com> James Hogan <james.ho...@mips.com> Paul Burton <pbur...@wavecomp.com> Alexander Graf <ag...@suse.de> Roy Franz <roy.fr...@linaro.org> Dmitry Solodkiy <d.solod...@samsung.com> Evgeny Voevodin <e.voevo...@samsung.com> Serge Hallyn <serge.hal...@ubuntu.com> Pavel Dovgalyuk <pavel.dovga...@ispras.ru> > > Paolo > >> --- >> scripts/get_maintainer.pl | 50 +++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 50 insertions(+) >> >> diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl >> index 271f5ff42a..7f7a4ff3ef 100755 >> --- a/scripts/get_maintainer.pl >> +++ b/scripts/get_maintainer.pl >> @@ -38,6 +38,7 @@ >> my $interactive = 0; >> my $email_remove_duplicates = 1; >> my $email_use_mailmap = 1; >> +my $email_use_ignoredmailmap = 1; >> my $output_multiline = 1; >> my $output_separator = ", "; >> my $output_roles = 0; >> @@ -365,6 +366,51 @@ sub read_mailmap { >> close($mailmap_file); >> } >> >> +my $ignoredmailmap; >> + >> +read_ignoredmailmap(); >> + >> +sub read_ignoredmailmap { >> + $ignoredmailmap = { >> + names => {}, >> + addresses => {} >> + }; >> + >> + return if (!$email_use_ignoredmailmap || !(-f >> "${lk_path}.ignoredmailmap")); >> + >> + open(my $ignoredmailmap_file, '<', "${lk_path}.ignoredmailmap") >> + or warn "$P: Can't open .ignoredmailmap: $!\n"; >> + >> + while (<$ignoredmailmap_file>) { >> + s/#.*$//; #strip comments >> + s/^\s+|\s+$//g; #trim >> + >> + next if (/^\s*$/); #skip empty lines >> + #entries have one of the following formats: >> + # name1 <mail1> >> + # <mail1> >> + >> + if (/^([^<]+)<([^>]+)>$/) { >> + my $real_name = $1; >> + my $address = $2; >> + >> + $real_name =~ s/\s+$//; >> + ($real_name, $address) = parse_email("$real_name <$address>"); >> + $ignoredmailmap->{$address} = 1; >> + } elsif (/^(.+)<([^>]+)>\s*<([^>]+)>$/) { >> + my $real_name = $1; >> + my $real_address = $2; >> + my $wrong_address = $3; >> + >> + $real_name =~ s/\s+$//; >> + ($real_name, $real_address) = >> + parse_email("$real_name <$real_address>"); >> + $ignoredmailmap->{$real_address} = 1; >> + } >> + } >> + close($ignoredmailmap_file); >> +} >> + >> ## use the filenames on the command line or find the filenames in the >> patchfiles >> >> my @files = (); >> @@ -1074,6 +1120,10 @@ sub push_email_address { >> if ($address eq "") { >> return 0; >> } >> + if (exists $ignoredmailmap->{$address}) { >> + #warn("Ignoring address: '" . $address . "'\n"); >> + return 0; >> + } >> >> if (!$email_remove_duplicates) { >> push(@email_to, [format_email($name, $address, $email_usename), $role]); >> > >