Re: Formatting problem send_mail in version 2.10.0
- From
Jeff King <peff@peff.net>
- Date
- Oct 11, 2016, 16:02 UTC
- Message-ID
- <20161011160234.ve72wdqujdz4zrrq@sigill.intra.peff.net>
- In-Reply-To
- <vpqfuo3l4fl.fsf@anie.imag.fr>
On Tue, Oct 11, 2016 at 09:39:58AM +0200, Matthieu Moy wrote:
Show 16 quoted lines
> >> I can't reproduce the problem with this simple setup: > >> > >> git init > >> echo content >file && git add file > >> git commit -F- <<-\EOF > >> the subject > >> > >> the body > >> > >> Cc: Stable <stable@vger.kernel.org> [4.8+] > > Is this RFC2822 compliant (https://tools.ietf.org/html/rfc2822)? Not an > expert of the norm, but my understanding is that you're allowed to use > either "Name <addr@domain.com>" (name-addr) or addr@domain.com > (addr-spec), and that comments are allowed within parenthesis like > "Stable <stable@vger.kernel.org> (4.8+)".
I'm not sure. I don't recall seeing anything like it in the wild before, but I find it interesting that we behave differently than Mail::Address (which I generally assume to adhere to a mix of spec and common practice). I couldn't find anything relevant in rfc2822.
Show 5 quoted lines
> What is this [4.8+] supposed to mean? > > The guilty function is parse_mailboxes in perl/Git.pm. It should be > rather easy to modify it but I need to understand the spec before I can > try to implement anything.
It seems to be syntactically invalid as an rfc2822 address. If it's in common use on trailer lines[1], I think the only sane things are to drop it, or to stick it in the name. Between the two, I'd argue for the latter, as that matches what Git historically has done.
I also found it interesting that:
Cc: Stable [4.8+] <stable@vger.kernel.org>
ends up as:
Cc: "Stable [ v4 . 8+ ]" <stable@vger.kernel.org>
I think this is also syntactically invalid as an rfc2822 address, but we have a habit in Git of treating single-line "name <email>" in a pretty lax manner, and just letting any character except "<" exist in the name field. I wonder if we should do something similar here.
-Peff
[1] Running `git log | grep -i '^ *cc:' | grep '\['` on linux.git
shows that it is a common pattern there, though there are other uses
of brackets that probably would not want to include their contents
in the name.It also looks like:
Cc: stable@vger.kernel.org # 4.8+
is a common pattern.
So I suspect we really are in the realm of micro-formats here, and
it is less about what rfc2822 says, and what people would find it
useful for send-email to do with these bits after the address (and
possibly what other people's scripts do with them).