patch tries to skip any leading garbage, apply the diff, and then skip any trailing garbage. Thus you could feed an email message containing a diff listing to patch, and it should work.
From git-am(1):
The patch is expected to be inline, directly following the message. Any line that is of the form:
three-dashes and end-of-line, or
a line that begins with “diff -”, or
a line that begins with "Index: "
is taken as the beginning of a patch, and the commit log message is terminated before the first occurrence of such a line.
Ideally git-am should use a better file format, but I suppose the more realistic lesson now is to never have inline diffs in Commit messages.
Hooray to underspecified file formats.
From
patch(1):From
git-am(1):Ideally
git-amshould use a better file format, but I suppose the more realistic lesson now is to never have inline diffs in Commit messages.