On Sat, Jul 28, 2018 at 6:36 AM Duy Nguyen <pclouds@xxxxxxxxx> wrote: > > On Fri, Jul 27, 2018 at 08:59:09PM +0000, brian m. carlson wrote: > > On Fri, Jul 27, 2018 at 11:59:33AM +0200, Paweł Paruzel wrote: > > > Hi, > > > > > > Lately, I have been wondering why my test files in repo are modified > > > after I clone it. It turned out to be two files: boolStyle_t_f and > > > boolStyle_T_F. > > > The system that pushed those files was case sensitive while my mac > > > after High Sierra update had APFS which is by default > > > case-insensitive. I highly suggest that git clone threw an exception > > > when files are case sensitive and being cloned to a case insensitive > > > system. This has caused problems with overriding files for test cases > > > without any warning. > > > > If we did what you proposed, it would be impossible to clone such a > > repository on a case-insensitive system. > > I agree throwing a real exception would be bad. But how about detecting > the problem and trying our best to keep the repo in somewhat usable > state like this? > > This patch uses sparse checkout to hide all those paths that we fail > to checkout, so you can still have a clean worktree to do things, as > long as you don't touch those paths. Side note. There may still be problems with this patch. Let's use vim-colorschemes.git as an example, which has darkBlue.vim and darkblue.vim. Say we have checked out darkBlue.vim and hidden darkblue.vim. When you update darkBlue.vim on worktree and then update the index, are we sure we will update darkBlue.vim entry and not (hidden) darkblue.vim? I am not sure. I don't think our lookup function is prepared to deal with this. Maybe it's best to hide both of them. -- Duy