Re: Better suggestions when git-am(1) fails
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 9, 2023, 16:22 UTC
- Message-ID
- <xmqqedpxq4if.fsf@gitster.g>
- In-Reply-To
- <ZAlPtxZ/0Z28r5tF@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 8 quoted lines
> 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-<.