From e46f7a0e1c641cd80affd80516677f1e370cd72c Mon Sep 17 00:00:00 2001 From: Adam Roben Date: Tue, 26 Jun 2007 15:48:30 -0700 Subject: [PATCH] git-send-email: Add --threaded option The --threaded option controls whether the In-Reply-To header will be set on any emails sent. The current behavior is to always set this header, so this option is most useful in its negated form, --no-threaded. This behavior can also be controlled through the 'sendemail.threaded' config setting. Signed-off-by: Adam Roben Signed-off-by: Junio C Hamano --- Documentation/git-send-email.txt | 7 +++++++ git-send-email.perl | 25 ++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index 946bd76af..1f5d57d42 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -86,6 +86,13 @@ The --cc option must be repeated for each user you want on the cc list. Do not add the From: address to the cc: list, if it shows up in a From: line. +--threaded, --no-threaded:: + If this is set, the In-Reply-To header will be set on each email sent. + If disabled with "--no-threaded", no emails will have the In-Reply-To + header set. + Default is the value of the 'sendemail.threaded' configuration value; + if that is unspecified, default to --threaded. + --dry-run:: Do everything except actually send the emails. diff --git a/git-send-email.perl b/git-send-email.perl index 9f7555167..b8b8fe7ee 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -74,6 +74,9 @@ Options: --suppress-from Suppress sending emails to yourself if your address appears in a From: line. + --threaded Specify that the "In-Reply-To:" header should be set on all + emails. Defaults to on. + --quiet Make git-send-email less verbose. One line per email should be all that is output. @@ -138,8 +141,8 @@ my (@to,@cc,@initial_cc,@bcclist,@xh, $initial_reply_to,$initial_subject,@files,$from,$compose,$time); # Behavior modification variables -my ($chain_reply_to, $quiet, $suppress_from, $no_signed_off_cc, - $dry_run) = (1, 0, 0, 0, 0); +my ($threaded, $chain_reply_to, $quiet, $suppress_from, $no_signed_off_cc, + $dry_run) = (1, 1, 0, 0, 0, 0); my $smtp_server; my $envelope_sender; @@ -154,9 +157,16 @@ if ($@) { $term = new FakeTerm "$@: going non-interactive"; } -my $def_chain = $repo->config_bool('sendemail.chainreplyto'); -if (defined $def_chain and not $def_chain) { - $chain_reply_to = 0; +my %config_settings = ( + "threaded" => \$threaded, + "chainreplyto" => \$chain_reply_to, +); + +foreach my $setting (keys %config_settings) { + my $default = $repo->config_bool("sendemail.$setting"); + if (defined $default) { + $config_settings{$setting} = $default ? 1 : 0; + } } @bcclist = $repo->config('sendemail.bcc'); @@ -181,6 +191,7 @@ my $rc = GetOptions("from=s" => \$from, "no-signed-off-cc|no-signed-off-by-cc" => \$no_signed_off_cc, "dry-run" => \$dry_run, "envelope-sender=s" => \$envelope_sender, + "threaded!" => \$threaded, ); unless ($rc) { @@ -287,7 +298,7 @@ if (!defined $initial_subject && $compose) { $prompting++; } -if (!defined $initial_reply_to && $prompting) { +if ($threaded && !defined $initial_reply_to && $prompting) { do { $_= $term->readline("Message-ID to be used as In-Reply-To for the first email? ", $initial_reply_to); @@ -484,7 +495,7 @@ Date: $date Message-Id: $message_id X-Mailer: git-send-email $gitversion "; - if ($reply_to) { + if ($threaded && $reply_to) { $header .= "In-Reply-To: $reply_to\n"; $header .= "References: $references\n"; -- 2.26.2