On Fri, Feb 24, 2023 at 8:55 AM Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
Ok, it's not quilt's fault, it's GNU diff's fault from what I can tell. quilt relies on diff to generate the patch, and I can't figure out how to get diff to notice file permissions at all. Am I just missing an option to 'diff' somewhere that I can't find in the manual?
No, I think you're right.
GNU patch was updated long ago to understand and apply the extended git patch data.
But as far as I can tell, GNU diffutils have never actually grown the ability to generate those extensions, even though at least the mode bit one should be fairly simple (the file rename/copy ones are rather more complicated, but those are just a "make diffs more legible and compact" convenience thing, unlike the executable bit thing that allows for scripts to remain executable).
Anyway, quilt can handle replacing what it uses for 'diff', so I'll just replace it with 'git diff' and that seems to solve the problem for me!
That does sound like the right solution.
I don't think the diffutils people really care, but let's cc Paul Eggert and Jim Meyering anyway, just in case. Because looking at the diffutils git tree, it's still actively maintained even if the patch load seems quite low.
Maybe there's some patch floating around that would allow diffutils to also add those mode change lines. A quick google didn't find anything, but Paul and Jim would probably know (or can just say "yeah, not even interested").
Linus