From: Junio C Hamano <gitster@pobox.com>
To: Joe Perches <joe@perches.com>
Cc: git@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] git-send-email: Add ability to cc: any "trailers" from commit message
Date: Wed, 31 Aug 2016 10:54:39 -0700 [thread overview]
Message-ID: <xmqqpooo259c.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <b2aa91d59a6cdd468bcbe85b45807cc1b82b23ed.1472588158.git.joe@perches.com> (Joe Perches's message of "Tue, 30 Aug 2016 13:18:29 -0700")
Joe Perches <joe@perches.com> writes:
> Many commits have various forms of trailers similar to
> "Acked-by: Name <address>" and "Reported-by: Name <address>"
>
> Add the ability to cc these trailers when using git send-email.
I thought you were asking what we call these "<token> followed by
<colon>" at the end of the log message, and "footers or trailers"
was the answer.
I do not have a strong objection against limiting to "-by:" lines;
for one thing, it would automatically avoid having to worry about
"Bug-ID:" and other trailers that won't have e-mail address at all.
But if you are _only_ picking up "-by:" lines, then calling this
option "trailers" is way too wide and confusing. I do not think
there is any specific name for "-by:" lines, though. Perhaps you
would need to invent some name that has "-by" as a substring.
"any-by"? or just "by"? I dunno.
> if ($suppress_cc{'all'}) {
> - foreach my $entry (qw (cccmd cc author self sob body bodycc)) {
> + foreach my $entry (qw (cccmd cc author self sob body bodycc trailers)) {
> $suppress_cc{$entry} = 1;
> }
OK.
> @@ -448,7 +448,7 @@ $suppress_cc{'self'} = $suppress_from if defined $suppress_from;
> $suppress_cc{'sob'} = !$signed_off_by_cc if defined $signed_off_by_cc;
>
> if ($suppress_cc{'body'}) {
> - foreach my $entry (qw (sob bodycc)) {
> + foreach my $entry (qw (sob bodycc trailers)) {
> $suppress_cc{$entry} = 1;
> }
> delete $suppress_cc{'body'};
OK.
> @@ -1545,7 +1545,7 @@ foreach my $t (@files) {
> # Now parse the message body
> while(<$fh>) {
> $message .= $_;
> - if (/^(Signed-off-by|Cc): (.*)$/i) {
> + if (/^(Signed-off-by|Cc|[^\s]+[_-]by): (.*)$/i) {
Micronits:
(1) do you really want to grab a run of any non-blanks? Don't
you want to exclude at least a colon?
(2) allowing an underscore looks a bit unusual.
> @@ -1555,6 +1555,12 @@ foreach my $t (@files) {
> } else {
> next if $suppress_cc{'sob'} and $what =~ /Signed-off-by/i;
> next if $suppress_cc{'bodycc'} and $what =~ /Cc/i;
> + next if $suppress_cc{'trailers'} and $what !~ /Signed-off-by/i && $what =~ /by$/i;
> + }
It is a bit unfortunate that S-o-b is a subset of any-by that forces
you to do this.
> + if ($c !~ /.+@.+/) {
> + printf("(body) Ignoring %s from line '%s'\n",
> + $what, $_) unless $quiet;
> + next;
> }
This check is new and applies to sob/cc, too.
I am aware of the fact that people sometimes write only a name with
no e-mail address when giving credit to a third-party and we want to
avoid upsetting the underlying MTA by feeding it a non-address.
Looking at existing helper subs like extract_valid_address and
sanitize_address that all addresses we pass to the MTA go through,
it appears to me that we try to support an addr-spec with only
local-part without @domain, so this new check might turn out to be
too strict from that point of view, but on the other hand I suspect
it won't be a huge issue because the addresses in the footers are
for public consumption and it may not make much sense to have a
local-only address there. I dunno.
> push @cc, $c;
> printf("(body) Adding cc: %s from line '%s'\n",
next prev parent reply other threads:[~2016-08-31 17:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-30 20:18 [PATCH] git-send-email: Add ability to cc: any "trailers" from commit message Joe Perches
2016-08-31 17:54 ` Junio C Hamano [this message]
2016-08-31 17:56 ` Joe Perches
2016-08-31 18:11 ` Junio C Hamano
2016-08-31 18:12 ` Joe Perches
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=xmqqpooo259c.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
/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).