Subject: Re: Better suggestions when git-am(1) fails

From: Junio C Hamano <[email-masked]>
Date: Thu, 09 Mar 2023 08:22:00 -0800

Jeff King <[email-masked]> writes:

> On Wed, Mar 08, 2023 at 09:15:53PM +0100, Alejandro Colomar wrote:
>
>> I had the following error already a few times, when some contributors,
>> for some reason unknown to me, remove the leading path components from
>> the patch.
>
> The reason is probably that they have set diff.noprefix in their config,
> and git-format-patch respects that. Which is arguably a bug.

FWIW, I've always considered it a feature to help projects that
prefer their patches in -p0 form.  Of course, Git optimized itself
for the usecase we consider the optimum, i.e. using a/ and b/ prefix
on the diff generation side, while stripping them with -p1 on the
applying side.

I wonder apply.plevel or am.plevel would be a good way to help them
further?

I am not sure making format-patch _ignore_ diff.src/dst_prefix is a
good approach.  If we were wiser, we may not have introduced the
diff.noprefix option, made sure diff.src/dstprefix to be always a
single level, and kept -p<n> on the application side as an escape
hatch only to deal with non-Git generated patches.  The opportunity
to simplify the world that way however we missed 15 years ago X-<.