Re: git apply does not honor diff.noprefix config setting
hIpPy <hippy2981@gmail.com> writes:
Show 5 quoted lines
> If I disable mnemonic prefix,
>
> $ git config --global diff.noprefix true
>
> and do a round-trip of format-patch and apply,
Setting diff.noprefix does not disable "mnemonic prefix". It asks "diff" family of commands to use no prefix, not even the normal, non-mnemonic, prefix.
Show 7 quoted lines
> $ git format-patch -1 @
> $ git apply <some-file.patch>
>
> git apply fails with,
>
> error: git diff header lacks filename information when removing 1
> leading pathname component (line 16)
> Without 'diff.noprefix' config setting, git apply works. It seems git
> apply does not honor the diff.noprefix config setting.
Yes, and because "diff" and "format-patch" are for producers of, and "apply" and "am" are for consumers of a patch, which are likely to be different people, "apply" or "am" should never pay attention to "diff.noprefix".
It is a different issue if we should have
- format-patch.noprefix, which defaults to the same as
diff.noprefix, but allows people to configure "format-patch"
differently from "diff" and "show"
- am.pvalue, which defaults to 1, but can be set to e.g. 0 to
accept format-patch output from those who set
format-patch.noprefix to true
I haven't thought things through, but offhand I do not see why we shouldn't. But I am reasonably firm on that diff.noprefix should never affect anything on the "apply/am" side.