On 2014-02-27 20.50, Junio C Hamano wrote: > Lee Hopkins <leerhop@xxxxxxxxx> writes: > >> Last week I ran across a potential bug with branch names on case >> insensitive file systems, the complete scenario can be found here: >> >> https://groups.google.com/forum/#!topic/msysgit/ugKL-sVMiqI >> >> The tldr is because refs are stored as plain text files except when >> packed into packed-refs, Git occasionally cannot tell the difference >> between branches whose names only differ in case, and this could >> potentially lead to the loss of history. >> >> It sounds like this is a known issue, and after some more digging I >> did find some older threads related to this topic, but nothing recent. > > Yes, it is not limited to branch names but also applies to tags and > filenames in your working tree. > > Perhaps git-{branch,tag}.txt and possibly gitrepository-layout.txt > in Documentation/ may need a new "*Note*" section to warn against > this. > > Thanks. There is a possible workaround: git pack-refs --all --prune If this can be triggered by a hook, I don't know (I never used a hook) It uses the C-function pack_refs(flags) in builtin/pack-refs.c Or we can possibly trigger this function at the the of "checkout -b" or "fetch" commands ? Only when core.ignorecase == true ? -- 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