On Mon, Oct 03, 2016 at 11:51:59PM -0700, Jacob Keller wrote: > On Mon, Oct 3, 2016 at 1:36 PM, Jeff King <peff@xxxxxxxx> wrote: > > On a case-insensitive filesystem, we should realize that > > "a/objects" and "A/objects" are the same path. We already > > use fspathcmp() to check against the main object directory, > > but until recently we couldn't use it for comparing against > > other alternates (because their paths were not > > NUL-terminated strings). But now we can, so let's do so. > > > > Yep, makes sense. > > > Note that we also need to adjust count-objects to load the > > config, so that it can see the setting of core.ignorecase > > (this is required by the test, but is also a general bugfix > > for users of count-objects). > > Also makes sense. BTW, I tested this on a vfat loopback device, but I was surprised to see that quite a few other tests failed on that device. At least one of the problems is that symlinks are not supported, but lib-httpd.sh wants to use them for its Apache setup. I guess people on Windows just don't run the httpd tests at all, which is not too surprising. Likewise, credential-cache fails because it cannot create a Unix socket (and the flag for that is in the build, not a run-time filesystem check). Some of the other failures seemed to be due to lack of an executable bit on the filesystem. I'm not sure if we could or should do better run-time detection of that sort of thing. I think some of the checks are tied to the build, and that's generally good enough in practice because people don't use vfat on their Linux machines. So tracking down each of them may just be pedantic make-work that nobody cares about. I did wonder if there was another good filesystem to use for case-insensitive experiments on Linux. At the time I didn't think there was good support for making HFS+ filesystems, but it looks Debian cares mkfs.hfs. That's probably a better choice for such experiments. -Peff