Merge branch 'ao/send-email-irt'
* ao/send-email-irt: git-send-email.perl: make initial In-Reply-To apply only to first email t9001: send-email interation with --in-reply-to and --chain-reply-to
This commit is contained in:
commit
01530432f7
@ -82,11 +82,26 @@ See the CONFIGURATION section for 'sendemail.multiedit'.
|
||||
set, as returned by "git var -l".
|
||||
|
||||
--in-reply-to=<identifier>::
|
||||
Specify the contents of the first In-Reply-To header.
|
||||
Subsequent emails will refer to the previous email
|
||||
instead of this if --chain-reply-to is set.
|
||||
Only necessary if --compose is also set. If --compose
|
||||
is not set, this will be prompted for.
|
||||
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.
|
||||
The second and subsequent emails will be sent as replies according to
|
||||
the `--[no]-chain-reply-to` setting.
|
||||
+
|
||||
So for example when `--thread` and `--no-chain-reply-to` are specified, the
|
||||
second and subsequent patches will be replies to the first one like in the
|
||||
illustration below where `[PATCH v2 0/3]` is in reply to `[PATCH 0/2]`:
|
||||
+
|
||||
[PATCH 0/2] Here is what I did...
|
||||
[PATCH 1/2] Clean up and tests
|
||||
[PATCH 2/2] Implementation
|
||||
[PATCH v2 0/3] Here is a reroll
|
||||
[PATCH v2 1/3] Clean up
|
||||
[PATCH v2 2/3] New tests
|
||||
[PATCH v2 3/3] Implementation
|
||||
+
|
||||
Only necessary if --compose is also set. If --compose
|
||||
is not set, this will be prompted for.
|
||||
|
||||
--subject=<string>::
|
||||
Specify the initial subject of the email thread.
|
||||
|
@ -1319,7 +1319,8 @@ foreach my $t (@files) {
|
||||
|
||||
# set up for the next message
|
||||
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 ||
|
||||
$message_num == 1)) {
|
||||
$reply_to = $message_id;
|
||||
if (length $references > 0) {
|
||||
$references .= "\n $message_id";
|
||||
|
@ -313,6 +313,49 @@ test_expect_success $PREREQ 'Valid In-Reply-To when prompting' '
|
||||
! grep "^In-Reply-To: < *>" msgtxt1
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'In-Reply-To without --chain-reply-to' '
|
||||
clean_fake_sendmail &&
|
||||
echo "<unique-message-id@example.com>" >expect &&
|
||||
git send-email \
|
||||
--from="Example <nobody@example.com>" \
|
||||
--to=nobody@example.com \
|
||||
--no-chain-reply-to \
|
||||
--in-reply-to="$(cat expect)" \
|
||||
--smtp-server="$(pwd)/fake.sendmail" \
|
||||
$patches $patches $patches \
|
||||
2>errors &&
|
||||
# The first message is a reply to --in-reply-to
|
||||
sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
# Second and subsequent messages are replies to the first one
|
||||
sed -n -e "s/^Message-Id: *\(.*\)/\1/p" msgtxt1 >expect &&
|
||||
sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt2 >actual &&
|
||||
test_cmp expect actual &&
|
||||
sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt3 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'In-Reply-To with --chain-reply-to' '
|
||||
clean_fake_sendmail &&
|
||||
echo "<unique-message-id@example.com>" >expect &&
|
||||
git send-email \
|
||||
--from="Example <nobody@example.com>" \
|
||||
--to=nobody@example.com \
|
||||
--chain-reply-to \
|
||||
--in-reply-to="$(cat expect)" \
|
||||
--smtp-server="$(pwd)/fake.sendmail" \
|
||||
$patches $patches $patches \
|
||||
2>errors &&
|
||||
sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt1 >actual &&
|
||||
test_cmp expect actual &&
|
||||
sed -n -e "s/^Message-Id: *\(.*\)/\1/p" msgtxt1 >expect &&
|
||||
sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt2 >actual &&
|
||||
test_cmp expect actual &&
|
||||
sed -n -e "s/^Message-Id: *\(.*\)/\1/p" msgtxt2 >expect &&
|
||||
sed -n -e "s/^In-Reply-To: *\(.*\)/\1/p" msgtxt3 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success $PREREQ 'setup fake editor' '
|
||||
(echo "#!$SHELL_PATH" &&
|
||||
echo "echo fake edit >>\"\$1\""
|
||||
|
Loading…
Reference in New Issue
Block a user