Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > @@ -540,6 +556,16 @@ static int verify_absent(struct cache_entry *ce, const char *action, > int dtype = ce_to_dtype(ce); > struct cache_entry *result; > > + /* > + * It may be that the 'lstat()' succeeded even though > + * target 'ce' was absent, because there is an old > + * entry that is different only in case.. > + * > + * Ignore that lstat() if it matches. > + */ > + if (ignore_case && icase_exists(o, ce, &st)) > + return 0; > + It may well be the case that this lstat() returning success was caused by a ghost match with a file with different case, and I think it is the right thing to say "no, it does not exist" if that is the case. I wonder what happens when the file with the same case does exist that we are trying to make sure is missing? As far as I can tell, icase_exists() does not ask "does a file with this name in different case exist, and a file with this exact case doesn't?" but asks "does a file with this name, or another name that is different only in case, exist?". -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html