Brandon Casey wrote: > Currently, git will append two newlines to every message supplied via > the -m switch. The purpose of this is to allow -m to be supplied > multiple times and have each supplied string become a paragraph in the > resulting commit message. > > Normally, this does not cause a problem since any trailing newlines will > be removed by the cleanup operation. If cleanup=verbatim for example, > then the trailing newlines will not be removed and will survive into the > resulting commit message. > > Instead, let's ensure that the string supplied to -m is newline terminated, > but only append a second newline when appending additional messages. [...] > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@ -124,8 +124,10 @@ static int opt_parse_m(const struct option *opt, const char *arg, int unset) > if (unset) > strbuf_setlen(buf, 0); > else { > + if (buf->len) > + strbuf_addch(buf, '\n'); > strbuf_addstr(buf, arg); > - strbuf_addstr(buf, "\n\n"); > + strbuf_complete_line(buf); As long as 'message' always consists of complete lines, this will append 'arg' as a new paragraph, as desired. And no other code path touches 'message', so it always consists of complete lines. Thanks for a clear patch and explanation. Reviewed-by: Jonathan Nieder <jrnieder@xxxxxxxxx> (rest of patch kept unsnipped for reference) > } > return 0; > } > diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh > index 39e55f8..292bc08 100755 > --- a/t/t7502-commit.sh > +++ b/t/t7502-commit.sh > @@ -204,7 +204,7 @@ test_expect_success 'cleanup commit messages (verbatim option,-F)' ' > > ' > > -test_expect_failure 'cleanup commit messages (verbatim option,-m)' ' > +test_expect_success 'cleanup commit messages (verbatim option,-m)' ' > > echo >>negative && > git commit --cleanup=verbatim -m "$mesg_with_comment_and_newlines" -a && > -- -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html