From: Junio C Hamano Date: Wed, 23 Jan 2008 02:57:22 GMT Subject: Re: git on MacOSX and files with decomposed utf-8 file names Message-ID: <7vsl0pp7u5.fsf@gitster.siamese.dyndns.org> In-Reply-To: ebiederm@xmission.com (Eric W. Biederman) writes: > Junio C Hamano writes: > >> I'd rather see our mental bandwidth spent on coming up with a >> workable workaround for such broken filesystems, while not >> hurting use of git on sane platforms. >> >> I fear it might have to end up to be very messy and slow, >> though. > > Random thought. Would it make sense to implement a git paranoid > mode to autodetect name mangling. > > I.e. After opening or creating a file by name we do a readdir in the > same directory to make certain we can find that same name/inode > combination. Then on name-mangling systems we can autodetect they > exist and limit ourselves to just what they don't mangle with no > prior knowledge. By refusing to process names that actively > get mangled. For small directories that you frequently see in > development it shouldn't even be that slow. Inside init-db where we already check how the filesystem behaves, we could have an autodetection. A rough equivalent of what I had in mind is: mkdir -p "Märchen/Märchen" if test "$(cd Märchen && echo M*)" = "Märchen" then : not mangling else git config core.namemangle true fi (of course we do that in C not in shell).