On Sat, Aug 11, 2018 at 12:09 PM SZEDER Gábor <szeder.dev@xxxxxxxxx> wrote: > > > > Paths that only differ in case work fine in a case-sensitive > > filesystems, but if those repos are cloned in a case-insensitive one, > > you'll get problems. The first thing to notice is "git status" will > > never be clean with no indication what exactly is "dirty". > > > > This patch helps the situation a bit by pointing out the problem at > > clone time. Even though this patch talks about case sensitivity, the > > patch makes no assumption about folding rules by the filesystem. It > > simply observes that if an entry has been already checked out at clone > > time when we're about to write a new path, some folding rules are > > behind this. > > > > This patch is tested with vim-colorschemes repository on a JFS partition > > with case insensitive support on Linux. This repository has two files > > darkBlue.vim and darkblue.vim. > > > > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > > This patch makes 'clone http repository' in > 't5551-http-fetch-smart.sh' fail with: > > --- exp 2018-08-11 02:29:45.216641851 +0000 > +++ actual.smudged 2018-08-11 02:29:45.264642318 +0000 > @@ -15,3 +15,5 @@ > < Pragma: no-cache > < Cache-Control: no-cache, max-age=0, must-revalidate > < Content-Type: application/x-git-upload-pack-result > +> warning: the following paths have collided and only one from the same > +> colliding group is in the working tree: I was careless and checked the wrong variable (should have checked nr_duplicates not state.nr_duplicates; the second is a pointer). So we always get this warning (and with no following list of files) > I also notice that this patch doesn't add any tests... :) This is platform specific and I was to be frank a bit lazy. Will consider adding a test with CASE_INSENSITIVE_FS after this. -- Duy