From: Junio C Hamano Date: Mon, 10 Nov 2014 06:34:19 GMT Subject: Re: [PATCH] t1410: Fix for case insensitive filesystems Message-ID: In-Reply-To: <20141110062356.GA8047@peff.net> On Sun, Nov 9, 2014 at 10:23 PM, Jeff King wrote: > On Sun, Nov 09, 2014 at 08:48:06PM -0500, Brian Gernhardt wrote: > >> A pair of recently added tests used branches a and a/b, but earlier >> tests created files A and A/B. On case insensitive filesystems (such >> as HFS+), that causes git to complain about the name being ambiguous >> between branch and file. Resolve by renaming the branches to aa and >> aa/bb. > > Already being discussed here: > > http://thread.gmane.org/gmane.comp.version-control.git/259250/focus=259253 > > :) Related tangent for a moderately near future. One thing that we may want to play with around this topic is to try building an alternative "ref backend" that is backed by a filesystem, lays out things pretty much the same way as the current "refs" (i.e. one file per ref, directory hierarchy corresponds to slashes in the refname, one file per reflog, etc.), but can be stored on a case insensitive filesystem, as a demonstration of Ronnie's "ref-transaction" restructuring series. Perhaps such a backend may store branch 'a' as 'refs/heads/a' while storing branch 'A' as 'refs/heads/%41' or something, and causes the right thing to happen when "for-each-ref" enumerates the refs by unquoting quoted names and when "checkout" asks to check out such a branch.