From: Michael Hendricks <michael@ndrix.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-send-email: RFC2822 compliant Message-ID
Date: Wed, 20 Jun 2007 22:09:30 -0600 [thread overview]
Message-ID: <20070621040929.GE5915@ginosko.local> (raw)
In-Reply-To: <7v7ipytkt5.fsf@assigned-by-dhcp.pobox.com>
On Wed, Jun 20, 2007 at 01:47:34PM -0700, Junio C Hamano wrote:
> How about doing this instead?
>
> * Move call to make_message_id() to where it matters, namely,
> before the $message_id is needed to be placed in the
> generated e-mail header; this has an important side effect of
> making it clear that $from is already available.
>
> * Throw in Sys::Hostname::hostname() just for fun, although I
> suspect that the code would never trigger due to the modified
> call sequence that makes sure $from is always available.
>
> ---
>
> diff --git a/git-send-email.perl b/git-send-email.perl
> index 7c0c90b..9f75551 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -412,13 +412,21 @@ sub extract_valid_address {
> # 1 second since the last time we were called.
>
> # We'll setup a template for the message id, using the "from" address:
> -my $message_id_from = extract_valid_address($from);
> -my $message_id_template = "<%s-git-send-email-$message_id_from>";
>
> sub make_message_id
> {
> my $date = time;
> my $pseudo_rand = int (rand(4200));
> + my $du_part;
> + for ($from, $committer, $author) {
> + $du_part = extract_valid_address($_);
> + last if ($du_part ne '');
> + }
> + if ($du_part eq '') {
> + use Sys::Hostname qw();
> + $du_part = 'user@' . Sys::Hostname::hostname();
> + }
> + my $message_id_template = "<%s-git-send-email-$du_part>";
> $message_id = sprintf $message_id_template, "$date$pseudo_rand";
> #print "new message id = $message_id\n"; # Was useful for debugging
> }
> @@ -467,6 +475,8 @@ sub send_message
> $ccline = "\nCc: $cc";
> }
> $from = sanitize_address_rfc822($from);
> + make_message_id();
> +
> my $header = "From: $from
> To: $to${ccline}
> Subject: $subject
> @@ -533,7 +543,6 @@ X-Mailer: git-send-email $gitversion
>
> $reply_to = $initial_reply_to;
> $references = $initial_reply_to || '';
> -make_message_id();
> $subject = $initial_subject;
>
> foreach my $t (@files) {
> @@ -627,7 +636,6 @@ foreach my $t (@files) {
> $references = "$message_id";
> }
> }
> - make_message_id();
> }
>
> if ($compose) {
>
I like it. It eliminates two globals and makes the context of
make_message_id clearer.
--
Michael
prev parent reply other threads:[~2007-06-21 4:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-20 13:25 [PATCH] git-send-email: RFC2822 compliant Message-ID Michael Hendricks
2007-06-20 20:18 ` Junio C Hamano
2007-06-20 20:47 ` Junio C Hamano
2007-06-21 4:09 ` Michael Hendricks [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070621040929.GE5915@ginosko.local \
--to=michael@ndrix.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).