On Thu, 1 Aug 2024 23:51:21 -0400 Jeff King <peff@xxxxxxxx> wrote: > On Thu, Aug 01, 2024 at 06:07:06PM -0700, Andrew Morton wrote: > > > > So, the patch removes autoconf.h file from that directory. The > > > "extended header" part between "diff --git" and "--- a/..." has > > > "deleted file mode 100664" and that is where the warning comes. > > > > yup yup. The patch says "remove this file which has mode 100664". > > > > The file has mode 100664. > > > > quiltimport says it had mode 100644. Incorrectly, I suggest. > > It's definitely a weird case. Git does not record full modes, but just > cares about the execute bit. So it normalizes modes for regular files to > 100644 or 100755. You can see that with a simple example: > > git init > echo foo >file > chmod 664 file > git add file > git commit -m 'add file' > > git ls-files -s > > cat >patch <<\EOF > diff --git a/file b/file > deleted file mode 100664 > --- a/file > +++ /dev/null > @@ -1 +0,0 @@ > -foo > EOF > ls -l file > git apply patch > > Even though the filesystem has 100664, the index records 100644 (which > you can see from the "ls-files" output). And then when we apply the > patch, we get the "file has type 100644, expected 100664" message. OK. > AFAICT, it has been that way forever (I tried as far back as git 1.6.6). > So this is nothing new, and I don't think Git would ever produce a patch > that said "file mode 100664" itself (I'm assuming in your case the patch > is coming from quilt). yup. > Alternatively (or maybe in addition), I wonder if quilt should similarly > canonicalize the mode. I'll hard code 100644 ;) > generated elsewhere, but normal patches don't have modes in them at all. > The "deleted file mode" line is git-ism, so here we have something which > is implementing the git line in a (slightly) incompatible way. yup, thanks.