send-email: restore --in-reply-to superseding behavior
git send-email --in-reply-to= fails to override In-Reply-To email headers, if they're present in the output of format-patch, even when explicitly told to do so by the option --no-thread, which breaks the contract of the command line switch option, per its man page. " --in-reply-to=<identifier> Make the first mail (or all the mails with --no-thread) appear as a reply to the given Message-Id, which avoids breaking threads to provide a new patch series. " This patch fixes the aformentioned issue, by bringing --in-reply-to's old overriding behavior back. The test was donated by Carlo Marcelo Arenas Belón. Signed-off-by: Rafael Aquini <aquini@redhat.com> Helped-by: Carlo Marcelo Arenas Belón <carenas@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
af6b65d45e
commit
f9f60d7066
@ -1699,11 +1699,15 @@ sub process_file {
|
|||||||
$xfer_encoding = $1 if not defined $xfer_encoding;
|
$xfer_encoding = $1 if not defined $xfer_encoding;
|
||||||
}
|
}
|
||||||
elsif (/^In-Reply-To: (.*)/i) {
|
elsif (/^In-Reply-To: (.*)/i) {
|
||||||
|
if (!$initial_in_reply_to || $thread) {
|
||||||
$in_reply_to = $1;
|
$in_reply_to = $1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
elsif (/^References: (.*)/i) {
|
elsif (/^References: (.*)/i) {
|
||||||
|
if (!$initial_in_reply_to || $thread) {
|
||||||
$references = $1;
|
$references = $1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
elsif (!/^Date:\s/i && /^[-A-Za-z]+:\s+\S/) {
|
elsif (!/^Date:\s/i && /^[-A-Za-z]+:\s+\S/) {
|
||||||
push @xh, $_;
|
push @xh, $_;
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,8 @@ clean_fake_sendmail () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success $PREREQ 'Extract patches' '
|
test_expect_success $PREREQ 'Extract patches' '
|
||||||
patches=$(git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1)
|
patches=$(git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1) &&
|
||||||
|
threaded_patches=$(git format-patch -o threaded -s --in-reply-to="format" HEAD^1)
|
||||||
'
|
'
|
||||||
|
|
||||||
# Test no confirm early to ensure remaining tests will not hang
|
# Test no confirm early to ensure remaining tests will not hang
|
||||||
@ -1219,6 +1220,17 @@ test_expect_success $PREREQ 'threading but no chain-reply-to' '
|
|||||||
grep "In-Reply-To: " stdout
|
grep "In-Reply-To: " stdout
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success $PREREQ 'override in-reply-to if no threading' '
|
||||||
|
git send-email \
|
||||||
|
--dry-run \
|
||||||
|
--from="Example <nobody@example.com>" \
|
||||||
|
--to=nobody@example.com \
|
||||||
|
--no-thread \
|
||||||
|
--in-reply-to="override" \
|
||||||
|
$threaded_patches >stdout &&
|
||||||
|
grep "In-Reply-To: <override>" stdout
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success $PREREQ 'sendemail.to works' '
|
test_expect_success $PREREQ 'sendemail.to works' '
|
||||||
git config --replace-all sendemail.to "Somebody <somebody@ex.com>" &&
|
git config --replace-all sendemail.to "Somebody <somebody@ex.com>" &&
|
||||||
git send-email \
|
git send-email \
|
||||||
|
Loading…
Reference in New Issue
Block a user