From: Joe Perches <joe@perches•com>
To: Junio C Hamano <gitster@pobox•com>
Cc: git <git@vger•kernel.org>
Subject: [PATCH] git-send-email.perl: Add --suppress-to
Date: Sat, 05 Feb 2011 15:40:08 -0800 [thread overview]
Message-ID: <1296949208.4133.66.camel@Joe-Laptop> (raw)
In-Reply-To: <7vk4jzpq8h.fsf@alter.siamese.dyndns.org>
Add an equivalent command line option to suppress-cc.
Signed-off-by: Joe Perches <joe@perches•com>
---
Documentation/git-send-email.txt | 17 +++++++++++++++++
git-send-email.perl | 33 +++++++++++++++++++++++++++++++--
2 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 7ec9dab..69e03e8 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -232,6 +232,23 @@ Automating
cc list. Default is the value of 'sendemail.signedoffbycc' configuration
value; if that is unspecified, default to --signed-off-by-cc.
+--suppress-to=<category>::
+ Specify an additional category of recipients to suppress the
+ auto-to of:
++
+--
+- 'author' will avoid including the patch author
+- 'self' will avoid including the sender
+- 'tocmd' will avoid running the --to-cmd
+- 'bodyto' will avoid including anyone mentioned in To lines in the
+ patch body (commit message) except for self (use 'self' for that)
+- 'all' will suppress all auto to values.
+--
++
+Default is the value of 'sendemail.suppressto' configuration value; if
+that is unspecified, default to 'self' if --suppress-from is
+specified.
+
--suppress-cc=<category>::
Specify an additional category of recipients to suppress the
auto-cc of:
diff --git a/git-send-email.perl b/git-send-email.perl
index 76565de..0365c29 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -74,6 +74,7 @@ git send-email [options] <file | directory | rev-list options >
Automating:
--identity <str> * Use the sendemail.<id> options.
--to-cmd <str> * Email To: via `<str> \$patch_path`
+ --suppress-to <str> * author, self, tocmd, bodyto, all.
--cc-cmd <str> * Email Cc: via `<str> \$patch_path`
--suppress-cc <str> * author, self, sob, cc, cccmd, body, bodycc, all.
--[no-]signed-off-by-cc * Send to Signed-off-by: addresses. Default on.
@@ -196,6 +197,7 @@ my ($smtp_server, $smtp_server_port, @smtp_server_options);
my ($smtp_authuser, $smtp_encryption);
my ($identity, $aliasfiletype, @alias_files, $smtp_domain);
my ($validate, $confirm);
+my (@suppress_to);
my (@suppress_cc);
my ($auto_8bit_encoding);
@@ -226,6 +228,7 @@ my %config_settings = (
"aliasfiletype" => \$aliasfiletype,
"bcc" => \@bcclist,
"aliasesfile" => \@alias_files,
+ "suppressto" => \@suppress_to,
"suppresscc" => \@suppress_cc,
"envelopesender" => \$envelope_sender,
"multiedit" => \$multiedit,
@@ -301,6 +304,7 @@ my $rc = GetOptions("sender|from=s" => \$sender,
"quiet" => \$quiet,
"cc-cmd=s" => \$cc_cmd,
"suppress-from!" => \$suppress_from,
+ "suppress-to=s" => \@suppress_to,
"suppress-cc=s" => \@suppress_cc,
"signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc,
"confirm=s" => \$confirm,
@@ -369,6 +373,24 @@ foreach my $setting (values %config_bool_settings) {
# 'default' encryption is none -- this only prevents a warning
$smtp_encryption = '' unless (defined $smtp_encryption);
+# Set TO suppressions
+my(%suppress_to);
+if (@suppress_to) {
+ foreach my $entry (@suppress_to) {
+ die "Unknown --suppress-to field: '$entry'\n"
+ unless $entry =~ /^(?:all|author|self|tocmd|bodyto)$/;
+ $suppress_to{$entry} = 1;
+ }
+}
+
+if ($suppress_to{'all'}) {
+ foreach my $entry (qw (author self tocmd bodyto)) {
+ $suppress_to{$entry} = 1;
+ }
+ delete $suppress_to{'all'};
+}
+$suppress_to{'self'} = $suppress_from if defined $suppress_from;
+
# Set CC suppressions
my(%suppress_cc);
if (@suppress_cc) {
@@ -407,7 +429,11 @@ die "Unknown --confirm setting: '$confirm'\n"
# Debugging, print out the suppressions.
if (0) {
- print "suppressions:\n";
+ print "To suppressions:\n";
+ foreach my $entry (keys %suppress_to) {
+ printf " %-5s -> $suppress_to{$entry}\n", $entry;
+ }
+ print "Cc suppressions:\n";
foreach my $entry (keys %suppress_cc) {
printf " %-5s -> $suppress_cc{$entry}\n", $entry;
}
@@ -1201,6 +1227,9 @@ foreach my $t (@files) {
}
elsif (/^To:\s+(.*)$/) {
foreach my $addr (parse_address_line($1)) {
+
+ next if $suppress_to{'author'};
+ next if $suppress_to{'self'} and $author eq $sender;
printf("(mbox) Adding to: %s from line '%s'\n",
$addr, $_) unless $quiet;
push @to, sanitize_address($addr);
@@ -1269,7 +1298,7 @@ foreach my $t (@files) {
close $fh;
push @to, recipients_cmd("to-cmd", "to", $to_cmd, $t)
- if defined $to_cmd;
+ if defined $to_cmd && !$suppress_to{'tocmd'};
push @cc, recipients_cmd("cc-cmd", "cc", $cc_cmd, $t)
if defined $cc_cmd && !$suppress_cc{'cccmd'};
next prev parent reply other threads:[~2011-02-05 23:40 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-20 17:06 [PATCH] git-send-email.perl: Deduplicate "to:" and "cc:" entries with names Joe Perches
2010-11-20 20:15 ` Andreas Schwab
2010-11-20 21:01 ` Joe Perches
2010-11-20 22:47 ` Pete Harlan
2010-11-20 23:06 ` [PATCH V2] " Joe Perches
2010-11-26 18:34 ` Junio C Hamano
2010-11-26 21:34 ` Joe Perches
2010-11-27 0:25 ` Junio C Hamano
2010-11-27 0:39 ` Joe Perches
2011-02-05 23:40 ` Joe Perches [this message]
2011-02-06 20:28 ` [PATCH] git-send-email.perl: Add --suppress-to Junio C Hamano
2010-11-20 22:57 ` [PATCH] git-send-email.perl: Deduplicate "to:" and "cc:" entries with names Andreas Schwab
2010-11-20 23:00 ` Joe Perches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1296949208.4133.66.camel@Joe-Laptop \
--to=joe@perches$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=gitster@pobox$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox