prepare send-email for smoother change of --chain-reply-to default

Give a warning message when send-email uses chain-reply-to to thread the
messages because of the current default, not because the user explicitly
asked to, either from the command line or from the configuration.

This way, by the time 1.7.0 switches the default, everybody will be ready.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nanako Shiraishi 2009-11-29 12:24:48 +09:00 committed by Junio C Hamano
parent 66abce05dd
commit 528fb08732
2 changed files with 66 additions and 2 deletions

View File

@ -187,9 +187,11 @@ my ($identity, $aliasfiletype, @alias_files, @smtp_host_parts);
my ($validate, $confirm); my ($validate, $confirm);
my (@suppress_cc); my (@suppress_cc);
my $not_set_by_user = "true but not set by the user";
my %config_bool_settings = ( my %config_bool_settings = (
"thread" => [\$thread, 1], "thread" => [\$thread, 1],
"chainreplyto" => [\$chain_reply_to, 1], "chainreplyto" => [\$chain_reply_to, $not_set_by_user],
"suppressfrom" => [\$suppress_from, undef], "suppressfrom" => [\$suppress_from, undef],
"signedoffbycc" => [\$signed_off_by_cc, undef], "signedoffbycc" => [\$signed_off_by_cc, undef],
"signedoffcc" => [\$signed_off_by_cc, undef], # Deprecated "signedoffcc" => [\$signed_off_by_cc, undef], # Deprecated
@ -214,6 +216,19 @@ my %config_settings = (
"from" => \$sender, "from" => \$sender,
); );
# Help users prepare for 1.7.0
sub chain_reply_to {
if (defined $chain_reply_to &&
$chain_reply_to eq $not_set_by_user) {
print STDERR
"In git 1.7.0, the default will be changed to --no-chain-reply-to\n" .
"Set sendemail.chainreplyto configuration variable to true if\n" .
"you want to keep --chain-reply-to as your default.\n";
$chain_reply_to = 1;
}
return $chain_reply_to;
}
# Handle Uncouth Termination # Handle Uncouth Termination
sub signal_handler { sub signal_handler {
@ -1157,7 +1172,7 @@ foreach my $t (@files) {
# set up for the next message # set up for the next message
if ($thread && $message_was_sent && if ($thread && $message_was_sent &&
($chain_reply_to || !defined $reply_to || length($reply_to) == 0)) { (chain_reply_to() || !defined $reply_to || length($reply_to) == 0)) {
$reply_to = $message_id; $reply_to = $message_id;
if (length $references > 0) { if (length $references > 0) {
$references .= "\n $message_id"; $references .= "\n $message_id";

View File

@ -769,4 +769,53 @@ test_expect_success 'threading but no chain-reply-to' '
grep "In-Reply-To: " stdout grep "In-Reply-To: " stdout
' '
test_expect_success 'warning with an implicit --chain-reply-to' '
git send-email \
--dry-run \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
outdir/000?-*.patch 2>errors >out &&
grep "no-chain-reply-to" errors
'
test_expect_success 'no warning with an explicit --chain-reply-to' '
git send-email \
--dry-run \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
--chain-reply-to \
outdir/000?-*.patch 2>errors >out &&
! grep "no-chain-reply-to" errors
'
test_expect_success 'no warning with an explicit --no-chain-reply-to' '
git send-email \
--dry-run \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
--no-chain-reply-to \
outdir/000?-*.patch 2>errors >out &&
! grep "no-chain-reply-to" errors
'
test_expect_success 'no warning with sendemail.chainreplyto = false' '
git config sendemail.chainreplyto false &&
git send-email \
--dry-run \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
outdir/000?-*.patch 2>errors >out &&
! grep "no-chain-reply-to" errors
'
test_expect_success 'no warning with sendemail.chainreplyto = true' '
git config sendemail.chainreplyto true &&
git send-email \
--dry-run \
--from="Example <nobody@example.com>" \
--to=nobody@example.com \
outdir/000?-*.patch 2>errors >out &&
! grep "no-chain-reply-to" errors
'
test_done test_done