* Patches produced with format-patch under specific config aren't applicable
@ 2022-09-06 13:45 Felipe Oliveira Carvalho
2022-09-07 2:19 ` Đoàn Trần Công Danh
0 siblings, 1 reply; 2+ messages in thread
From: Felipe Oliveira Carvalho @ 2022-09-06 13:45 UTC (permalink / raw)
To: git
Patches produced with format-patch under specific config aren't applicable
Inbox
I have diff.noprefix=true on my ~/.gitconfig
[diff]
noprefix = true
I generate a .patch file from the last commit with
git format-patch HEAD^
Due to noprefix=true, I get this line in the patch file
diff --git src/filesystem/PhutilProcessQuery.php
src/filesystem/PhutilProcessQuery.php
instead of the default
diff --git a/src/filesystem/PhutilProcessQuery.php
b/src/filesystem/PhutilProcessQuery.php
So when I try to apply that patch, I get
$ git apply --check ./0001-my.patch
error: filesystem/PhutilProcessQuery.php: No such file or directory
In trying to remove the a/ and b/ that apply expects, it removes src/
from the path, then fails to find filesystem/PhutilProcessQuery.php.
As a mitigation, I'm setting diff.noprefix to false, but a more robust
solution would be for the format-patch command to ignore this setting
as patches are expected to work on repos configured by different
people.
git version 2.37.3
--
Felipe
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: Patches produced with format-patch under specific config aren't applicable
2022-09-06 13:45 Patches produced with format-patch under specific config aren't applicable Felipe Oliveira Carvalho
@ 2022-09-07 2:19 ` Đoàn Trần Công Danh
0 siblings, 0 replies; 2+ messages in thread
From: Đoàn Trần Công Danh @ 2022-09-07 2:19 UTC (permalink / raw)
To: Felipe Oliveira Carvalho; +Cc: git
On 2022-09-06 10:45:41-0300, Felipe Oliveira Carvalho <felipekde@gmail.com> wrote:
> Patches produced with format-patch under specific config aren't applicable
>
> Inbox
> I have diff.noprefix=true on my ~/.gitconfig
>
> [diff]
> noprefix = true
>
> I generate a .patch file from the last commit with
>
> git format-patch HEAD^
>
> Due to noprefix=true, I get this line in the patch file
>
> diff --git src/filesystem/PhutilProcessQuery.php
> src/filesystem/PhutilProcessQuery.php
>
> instead of the default
>
> diff --git a/src/filesystem/PhutilProcessQuery.php
> b/src/filesystem/PhutilProcessQuery.php
>
> So when I try to apply that patch, I get
>
> $ git apply --check ./0001-my.patch
> error: filesystem/PhutilProcessQuery.php: No such file or directory
>
> In trying to remove the a/ and b/ that apply expects, it removes src/
> from the path, then fails to find filesystem/PhutilProcessQuery.php.
>
> As a mitigation, I'm setting diff.noprefix to false, but a more robust
> solution would be for the format-patch command to ignore this setting
> as patches are expected to work on repos configured by different
> people.
You can use "-p0" with git-am or git-apply to apply such patches.
There's a RFE in the past to add log.noprefix and/or format.noprefix
but it seems noone interested enough to work on it [1]
1: https://lore.kernel.org/git/xmqqr1auvs7m.fsf@gitster.g/
--
Danh
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-09-07 2:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-06 13:45 Patches produced with format-patch under specific config aren't applicable Felipe Oliveira Carvalho
2022-09-07 2:19 ` Đoàn Trần Công Danh
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.