Subject: [PATCH 0/3] commit-msg.sample: reject messages that would confuse "git am"

From: Phillip Wood <[email-masked]>
Date: Sat, 7 Feb 2026 14:57:59 +0000

From: Phillip Wood <[email-masked]>

On 06/02/2026 09:03, Jeff King wrote:
> I don't think there is a way to unambiguously parse the single-stream
> output that format-patch produces. This is a reasonably well-known
> gotcha (at least around here). E.g., some earlier discussions:
>
>    2024:https://lore.kernel.org/git/[email-masked]/
>    2022:https://lore.kernel.org/git/d0b5778251[email-masked]/
>    2015:https://lore.kernel.org/git/CAFOYHZC6Qd9wkoWPcTJDxAs9u=[email-masked]/

If we cannot improve "git am" perhaps we should update our sample
"commit-msg" hook to reject messages that will cause problems. Here
are some patches to do that.

We could perhaps think about adding a more prominent warning to the
"git am" and "git format-patch" documentation. The docs for "git am"
mention that it splits the message on a line starting with "diff -"
but maybe we should spell out what that means for commit messages that
include a diff. In principle "git format-patch" could also warn or
error out if it creates a mail that "git am" cannot import verbatim,
I don't know how hard that would be in implement.

Base-Commit: b2826b52eb7caff9f4ed6e85ec45e338bf02ad09
Published-As: https://github.com/phillipwood/git/releases/tag/pw%2Fsample-commit-msg-reject-diff%2Fv1
View-Changes-At: https://github.com/phillipwood/git/compare/b2826b52e...83c100a73
Fetch-It-Via: git fetch https://github.com/phillipwood/git pw/sample-commit-msg-reject-diff/v1

Phillip Wood (3):
  templates: add .gitattributes entry for sample hooks
  templates: detect commit messages containing diffs
  templates: detect messages that contain a separator line

 .editorconfig                     |  2 +-
 .gitattributes                    |  1 +
 templates/hooks/commit-msg.sample | 38 +++++++++++++++++++++++++++++--
 3 files changed, 38 insertions(+), 3 deletions(-)

-- 
2.52.0.362.g884e03848a9