On Wed, Apr 1, 2015 at 7:20 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Chris Packham <judge.packham@xxxxxxxxx> writes: > >> So I was just sent a patch generated with 'git format-patch' that 'git >> am' fails to apply correctly. It applies but part of the commit >> message is lost. >> >> The problem is that the commit message has lines like >> >> --- Foo happened >> did some things to handle Foo >> --- Bar happened >> Still processing update from Foo which led to a crash >> >> git mailinfo seems to discard everything after the first '--- Blah'. > > Yes, this is well known. So is a line that begins with "diff --git" > makes mailinfo to guess that it is the end of the log message. > So it looks like code in mailinfo.c to handle --- a/file +++ b/file Also interprets --- Blah more text as the start of the patch portion. Perhaps mailinfo could search for both the --- and +++ lines before deciding it's the patch portion has started. Or search for "diff -" first and work backwards towards to drop text up to the "---". >> ... I know git >> mailinfo shouldn't handle garbage input but I guess the problem I have >> is that the patch was generated by git format-patch ... > > Whatever message you write format-patch emits without escaping, so > "patch was generated by format-patch" does not guarantee anything, > unfortunately. A related similar issue is that a line that begins > with "From " may be corrupted into a line that begins with ">From " > by the time the message hits your mailbox. These are unfortunately > something you have to know and long-time users learned to avoid > doing so unconsciously ;-). So perhaps the newer users need some training wheels built into format-patch :). It'd actually annoy me if it was too intrusive as I actually use --- as a light weight alternative to git-notes for commentary I want to include with a patch submission. But a message saying "if you send this verbatim commit message text will be lost" would at least let the user know that something needs attention . -- 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