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.
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
./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.
On Wed, Jun 11, 2014 at 3:30 PM, David Turner <dtur...@twopensource.com> 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
> 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 majord...@vger.kernel.org
> 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 majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html