David, One possible solution can be to use the external database daemon I am working of for ref transactions. Since this makes all refs be stored in a dedicated database instead of the filesystem you no longer are dependent on file system semantics. While not in the official git trees yet I would appreciate any testing and comments you may have it you want to test it. https://github.com/rsahlberg/git/tree/backend-struct-db-2 Not for production use but seeing if it does build and works on your platforms would be great. refsd-tdb: example refs database daemon refsd-tdb.c is a simple reference implementation of a refs daemon. This will eventually be hosted in a separate project but can live in this branch for now. Compile with : gcc refsd-tdb.c -o refsd-tdb -l tdb Run with: ./refsd-tdb /tmp/refsd.socket /tmp /tmp/refsd.log Once the refs daemon is running you can start using it with newly created git repositories by specifying the --db-socket and --db-repo-name arguments to git clone/init-db : git clone --db-repo-name=ROCKy --db-socket=/tmp/refsd.socket <some repo> . This refs daemon is an example. It should be relatively straightforward to modify it to attach to any other kind of data store. regards ronnie sahlberg On Wed, Jun 11, 2014 at 3:30 PM, David Turner <dturner@xxxxxxxxxxxxxxxx> wrote: > This issue bit us again recently. > > In talking with some colleagues, I realized that the previous version > of this patch, in addition to being potentially slow, was incomplete. > Specifically, it didn't handle the case of refs/heads/case/one vs > refs/heads/CASE/two; these are case clones even though they strcasecmp > different. > > This new version contains code to prevent this, as well as tests for > this case. > > Also it uses a hashmap to make lookups constant-time. > > -- > 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 -- 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