(please do not cull the CC list) Hi Oswald, Oswald Buddenhagen wrote: > so while everybody is apparently thinking about totally over-engineering > things as much as possible, could we please have this patch applied so we > have a solution for the time being? I am not convinced that this patch makes a positive change in general. Starting from a message Foo the bar Make some excellent improvement to the frobnicator. Signed-off-by: A U Thor <author@xxxxxxxxxxx> a person passing on the patch might write Foo the bar [...] Signed-off-by: A U Thor <author@xxxxxxxxxxx> [committer@xxxxxxxxxxx: avoid multiple return points] Signed-off-by: C O Mitter <committer@xxxxxxxxxxx> Similarly, when cherry-picking from permanent history, it can make sense to write Foo the bar [...] Signed-off-by: A U Thor <author@xxxxxxxxxxx> (cherry picked from commit 78a8b989a76c8798a9898c98a98c98a98ca) Signed-off-by: C O Mitter <committer@xxxxxxxxxxx> In both cases, it's just another hop in the life of a patch and not something that seems to deserve emphasis with extra whitespace. > i really hate to tell my coworkers that > they have to amend the cherry-picks just to make them comply with git's > own guidelines for well-formed commit messages (and thus have them pass > our pre-receive hook). I assume you are referring to one-line commit messages becoming two-line? Here's something rough to start. diff --git a/builtin/revert.c b/builtin/revert.c index dc1b702..343e7e7 100644 --- a/builtin/revert.c +++ b/builtin/revert.c @@ -198,6 +198,28 @@ static void add_message_to_msg(struct strbuf *msgbuf, const char *message) strbuf_addstr(msgbuf, p); } +static void add_blank_line_if_oneline(struct strbuf *msgbuf) +{ + const char *newline = memchr(msgbuf->buf, '\n', msgbuf->len); + + if (!newline) { /* No newline at end of message. */ + strbuf_addch(msgbuf, '\n'); + newline = msgbuf->buf + msgbuf->len - 1; + } + + /* + * If the change description consists of a single line, + * add a blank line separating the title from the new + * message body (the "(cherry picked from" line). + * + * NEEDSWORK: it would be better to reuse the append_signoff + * logic. + */ + newline = memchr(newline, '\n', msgbuf-> buf + msgbuf->len - newline); + if (!newline) + strbuf_addch(msgbuf, '\n'); +} + static void set_author_ident_env(const char *message) { const char *p = message; @@ -499,6 +521,7 @@ static int do_pick_commit(void) next_label = msg.label; set_author_ident_env(msg.message); add_message_to_msg(&msgbuf, msg.message); + add_blank_line_if_oneline(&msgbuf); if (no_replay) { strbuf_addstr(&msgbuf, "(cherry picked from commit "); strbuf_addstr(&msgbuf, sha1_to_hex(commit->object.sha1)); -- -- 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