threads / patch / 64159

patchsend-email: don't duplicate Reply-to: in intro message

Subject: [PATCH] send-email: don't duplicate Reply-to: in intro message

## tl;dr

3 messages between Sep 17, 2025 and Sep 17, 2025. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

NeilBrown· Sep 17, 2025, 06:32 UTC · lore
From: NeilBrown <neil@brown.name>
If I run
  git send-email --compose --reply-to 'ME <my@address.net>' .....

and edit the intro message, then it will get two copies of the Reply-To field. gmail.com rejects such messages.

This happens because send-email reads the edited message examining the headers. For recognised headers the content is extract to use in constructing the final message and for possible inclusion in the patch emails. Unrecognised headers are gathered (in @xh) to be passed though uninterpreted.

Unfortunately "Reply-To" is not recognised in this process so it is added to @xh as an uninterpreted header, but also generated from the $reply_to variable in gen_header(), resulting in two copies

So:

Add parsing to the loop in pre_process_file() to recognise a Reply-to header and to store the result in $reply_to. This means that the intro message will not get a second header and also means that any changes made to the Reply-To header during editing will be incorporated in the $reply_to variable and so included in all the generated email messages.

Signed-off-by: NeilBrown <neil@brown.name>
---
 git-send-email.perl | 3 +++
 1 file changed, 3 insertions(+)
Show changes to git-send-email.perl +3 −0
diff --git a/git-send-email.perl b/git-send-email.perl
index 437f8ac46a85..e2248c223119 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -1931,6 +1931,9 @@ sub pre_process_file {
 					$in_reply_to = $1;
 				}
 			}
+			elsif (/^Reply-To: (.*)/i) {
+				$reply_to = $1;
+			}
 			elsif (/^References: (.*)/i) {
 				if (!$initial_in_reply_to || $thread) {
 					$references = $1;
-- 
2.50.0.107.gf914562f5916.dirty
Eric Sunshine· Sep 17, 2025, 06:56 UTC · re: NeilBrown · lore

Re: [PATCH] send-email: don't duplicate Reply-to: in intro message

On Wed, Sep 17, 2025 at 2:33 AM NeilBrown <neilb@ownmail.net> wrote:
Show 12 quoted lines
> If I run
>
>   git send-email --compose --reply-to 'ME <my@address.net>' .....
>
> and edit the intro message, then it will get two copies of the Reply-To
> field.  gmail.com rejects such messages.
>
> This happens because send-email reads the edited message examining the
> headers.  For recognised headers the content is extract to use in
> constructing the final message and for possible inclusion in the patch
> emails.  Unrecognised headers are gathered (in @xh) to be passed though
> uninterpreted.

s/extract/extracted/ s/though/through/

Show 14 quoted lines
> Unfortunately "Reply-To" is not recognised in this process so it is
> added to @xh as an uninterpreted header, but also generated from the
> $reply_to variable in gen_header(), resulting in two copies
>
> So:
>
> Add parsing to the loop in pre_process_file() to recognise a Reply-to
> header and to store the result in $reply_to.  This means that the
> intro message will not get a second header and also means that
> any changes made to the Reply-To header during editing will be
> incorporated in the $reply_to variable and so included in all the
> generated email messages.
>
> Signed-off-by: NeilBrown <neil@brown.name>
Junio C Hamano· Sep 17, 2025, 14:05 UTC · re: NeilBrown · lore

Re: [PATCH] send-email: don't duplicate Reply-to: in intro message

NeilBrown <neilb@ownmail.net> writes:
Show 11 quoted lines
> Add parsing to the loop in pre_process_file() to recognise a Reply-to
> header and to store the result in $reply_to.  This means that the
> intro message will not get a second header and also means that
> any changes made to the Reply-To header during editing will be
> incorporated in the $reply_to variable and so included in all the
> generated email messages.
>
> Signed-off-by: NeilBrown <neil@brown.name>
> ---
>  git-send-email.perl | 3 +++
>  1 file changed, 3 insertions(+)
Makes sense.

Just FYI for any future contributions, it is customary to mark the second iteration as [PATCH v2] on the subject and to make the message a direct reply (with "Reply-To") to the previous iteration, to help people find how the patch evolved in the list archives like https://lore.kernel.org/git/

Obviously no need to redo this patch only for that, but if you need some other changes, sending v3 as a reply to the message I am responding to would be a good thing to do.

Thanks.
Show 15 quoted lines
>
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 437f8ac46a85..e2248c223119 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -1931,6 +1931,9 @@ sub pre_process_file {
>  					$in_reply_to = $1;
>  				}
>  			}
> +			elsif (/^Reply-To: (.*)/i) {
> +				$reply_to = $1;
> +			}
>  			elsif (/^References: (.*)/i) {
>  				if (!$initial_in_reply_to || $thread) {
>  					$references = $1;

← back to recent threads