From: Jens Lehmann <Jens.Lehmann@web.de>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>, Johannes Sixt <j6t@kdbg.org>,
Ari Pollak <ari@debian.org>,
git@vger.kernel.org
Subject: Re: [RFC PATCH] commit -v: strip diffs and submodule shortlogs from the commit message
Date: Sun, 17 Nov 2013 13:20:45 +0100 [thread overview]
Message-ID: <5288B49D.8080401@web.de> (raw)
In-Reply-To: <20131117090935.GC17016@sigill.intra.peff.net>
Am 17.11.2013 10:09, schrieb Jeff King:
>
>> diff --git a/builtin/commit.c b/builtin/commit.c
>> index 6ab4605..091a6e7 100644
>> --- a/builtin/commit.c
>> +++ b/builtin/commit.c
>> @@ -1602,9 +1602,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
>>
>> /* Truncate the message just before the diff, if any. */
>> if (verbose) {
>> - p = strstr(sb.buf, "\ndiff --git ");
>> - if (p != NULL)
>> - strbuf_setlen(&sb, p - sb.buf + 1);
>> + p = strstr(sb.buf, wt_status_diff_divider);
>> + if ((p != NULL) && (p > sb.buf) && (p[-1] == '\n'))
>> + strbuf_setlen(&sb, p - sb.buf);
>
> I think your check for a preceding newline is too strict. If I delete
> everything before the scissor line (e.g., because I am trying to abort
> the commit), we should still remove the diff. With your patch, we do
> not, and a commit message consisting solely of the diff.
>
> So I think you want:
>
> if (p && (p == sb.buf || p[-1] == '\n'))
Thanks for catching this, will do so in v2.
>> + fprintf(s->fp, _("# The diff below will be removed when keeping the previous line.\n"));
>
> I found this hard to parse, I think because of the "keeping" (why would
> I not keep it?), and because you are talking about lines above and
> below. It is not as accurate to say:
>
> # ------------------ >8 --------------------
> # Everything below this line will be removed.
>
> because it is technically the line above that is the cutoff. But I think
> the meaning is clear, and it is simpler to parse.
Ok.
> I do think it would be simpler with a single line. I know handling the
> i18n was a question there, but I think we should be fine as long as we
> check for the exact bytes we wrote. Surely gettext can do something
> like:
>
> magic = _("# Everything below this line will be removed");
> fprintf(fh, "%s", magic);
> ...
> p = strstr(magic);
>
> I don't know what guarantees on string lifetime gettext gives us, but
> the worst case is that we simply strdup the result.
>
> I suppose it's possible that the translated string could have utf8 with
> multiple representations, and the user's editor normalizes the text in a
> different way than we wrote it when it saves the result. I don't know if
> that is worth caring about or not; it seems kind of insane.
I don't have any strong feelings about this one. I'd be fine with
dropping the scissor line and taking the translated string as divider
line. What do others think?
next prev parent reply other threads:[~2013-11-17 12:20 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-10 21:49 Bug? diff.submodule=log adds text to commit -v message Ari Pollak
2013-11-11 20:41 ` Jens Lehmann
2013-11-11 20:48 ` Ari Pollak
2013-11-11 21:29 ` Jens Lehmann
2013-11-11 21:34 ` Jens Lehmann
2013-11-11 23:24 ` Jeff King
2013-11-12 7:46 ` Johannes Sixt
2013-11-12 22:17 ` Jens Lehmann
2013-11-12 22:20 ` Junio C Hamano
2013-11-13 18:37 ` Jens Lehmann
2013-11-13 20:04 ` Junio C Hamano
2013-11-16 22:52 ` [RFC PATCH] commit -v: strip diffs and submodule shortlogs from the commit message Jens Lehmann
2013-11-17 0:22 ` Eric Sunshine
2013-11-17 8:53 ` Jeff King
2013-11-17 9:09 ` Jeff King
2013-11-17 12:20 ` Jens Lehmann [this message]
2013-11-18 16:01 ` Junio C Hamano
2013-11-19 18:47 ` [PATCH v2 ] " Jens Lehmann
2013-11-19 19:07 ` Junio C Hamano
2013-11-19 19:31 ` Junio C Hamano
2013-11-19 19:42 ` Junio C Hamano
2013-11-19 20:34 ` Junio C Hamano
2013-11-19 21:01 ` Jens Lehmann
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=5288B49D.8080401@web.de \
--to=jens.lehmann@web.de \
--cc=ari@debian.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
--cc=peff@peff.net \
/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).