Subject: Re: [PATCH] gitk: fix history window panes position

From: Junio C Hamano <[email-masked]>
Date: Fri, 05 Dec 2025 16:22:48 +0900

Johannes Sixt <[email-masked]> writes:

> Ah! You are absolutely right! Clearly, I wasn't fully taking in what
> git-am was telling me. The problem isn't the encoding. It's the patch
> text itself, in particular, the single SP needed for empty context lines
> is missing.

I do not think that is the case, either.  diff.suppressBlankEmpty is
part of Git for quite some time.  The "empty context lines can be
expressed as a totally empty line" was started at GNU IIRC, but I
think POSIX allows it these days.  And we can take it, as you found
out with your "bla.patch" experiment below.

> I get this error when I apply the mbox containing the complete email:
>
> $ git am -3 --signoff ~/Mail/ambox
> warning: quoted CRLF detected
> Applying: gitk: fix history window panes position
> error: corrupt patch at line 40
> error: could not build fake ancestor
> Patch failed at 0001 gitk: fix history window panes position
> hint: Use 'git am --show-current-patch=diff' to see the failed patch
> hint: [...]
>
> But it is OK to copy the email body text to a file (which looks like
> mbox text) and apply that, despite the missing SP:
>
> $ git am -3 --signoff bla.patch
> Applying: gitk: fix history window panes position
> Using index info to reconstruct a base tree...
> A       gitk-git/gitk
> Falling back to patching base and 3-way merge...
>
> Why is that?

So the reason you seek is because you are barking up a wrong tree?

There probably is something wrong in the patch text that has nothing
to do with diff.suppressBlankEmpty that you somehow "fixed" without
knowing when you massaged the e-mail message into the "bla.patch"
text yourself manually, if I have to guess.