On Tue, Oct 11, 2016 at 09:39:58AM +0200, Matthieu Moy wrote: > >> 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@xxxxxxxxxxxxxxx> [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@xxxxxxxxxx>" (name-addr) or addr@xxxxxxxxxx > (addr-spec), and that comments are allowed within parenthesis like > "Stable <stable@xxxxxxxxxxxxxxx> (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. > 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@xxxxxxxxxxxxxxx> ends up as: Cc: "Stable [ v4 . 8+ ]" <stable@xxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx # 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).