On Sat, Jul 28, 2018 at 06:45:43AM +0200, Duy Nguyen wrote: > > 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. It might be enough to just issue a warning and give an advise() hint that tells the user what's going on. Then they can decide what to do (hide both paths, or just work in the index, or move to a different fs, or complain to upstream). -Peff