Hi Peff & Jonathan N, On Mon, 5 Oct 2020, Jeff King wrote: > On Mon, Oct 05, 2020 at 01:03:53AM -0700, Jonathan Nieder wrote: > > > > Note that the ntfs magic prefix names in the tests come from the > > > algorithm described in e7cb0b4455 (and are different for each file). > > > > Doesn't block this patch, but I'm curious: how hard would it be to make > > a test with an NTFS prerequisite that makes sure we got the magic prefix > > right? > > I suspect hard since Dscho punted on it in the original series. :) If I > understand correctly, it would require having an NTFS filesystem, and > generating 10,000+ files with a clashing prefix. It's not quite _as_ bad: you only need to generate 4 files with a clashing prefix and then the real one: -- snip -- me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitattributes1 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitattributes2 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitattributes3 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitattributes4 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitattributes me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitignore1 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitignore2 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitignore3 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitignore4 me@work MINGW64 ~/repros/ntfs-short-names $ touch .gitignore me@work MINGW64 ~/repros/ntfs-short-names $ cmd //c dir //x Volume in drive C is OSDisk Volume Serial Number is 5E6B-4E77 Directory of C:\Users\me\repros\ntfs-short-names 10/05/2020 11:11 PM <DIR> . 10/05/2020 11:11 PM <DIR> .. 10/05/2020 11:08 PM 0 GI7D29~1 .gitattributes 10/05/2020 11:08 PM 0 GITATT~1 .gitattributes1 10/05/2020 11:08 PM 0 GITATT~2 .gitattributes2 10/05/2020 11:08 PM 0 GITATT~3 .gitattributes3 10/05/2020 11:08 PM 0 GITATT~4 .gitattributes4 10/05/2020 11:11 PM 0 GI250A~1 .gitignore 10/05/2020 11:11 PM 0 GITIGN~1 .gitignore1 10/05/2020 11:11 PM 0 GITIGN~2 .gitignore2 10/05/2020 11:11 PM 0 GITIGN~3 .gitignore3 10/05/2020 11:11 PM 0 GITIGN~4 .gitignore4 10 File(s) 0 bytes 2 Dir(s) 314,658,705,408 bytes free -- snap -- But I don't necessarily think that it would make sense to add that test: it adds churn _every_ time the regression test is run, and by deity, it sure takes way too long on Windows _already_, and the test would be for a regression _in the NTFS driver_. At this stage, I also highly doubt that the algorithm will change ever again (the last time it changed was several Windows versions ago, I want to say in Windows XP, but it could have been all the way back to NT). In light of that, I'd say that the bang is rather small and the buck would be not small at all, and would have to be paid by developers on Windows who already pay a disproportionately high price when running the test suite, so... Ciao, Dscho