Re: Bringing a bit more sanity to $GIT_DIR/objects/info/alternates?
- From
Jeff King <peff@peff.net>
- Date
- Aug 7, 2012, 06:16 UTC
- Message-ID
- <20120807061616.GC13222@sigill.intra.peff.net>
- In-Reply-To
- <501E3F04.4050902@alum.mit.edu>
On Sun, Aug 05, 2012 at 11:38:12AM +0200, Michael Haggerty wrote:
Show 12 quoted lines
> I have some other crazy ideas for making the concept even more powerful: > > * Support remote alternate repositories. Local repository obtains > missing objects from the remote as needed. This would probably be > insanely inefficient without also supporting... > > * Lazy copying of "borrowed" objects to the local repository. Any > object fetched from the alternate object store is copied to the local > object store. > > Together, I think that these two features would give fully-functional > shallow clones.
You might be interested in looking at my rough (_very_ rough) experiment with object db "hooks":
https://github.com/peff/git/commits/jk/external-odb
The basic idea is to have helper programs that basically have two commands: give a list of sha1s you can provide, and fetch a specific object by sha1. That's enough for the low levels of git to fall-back to a helper on an object lookup failure, and copy the object to a local cache. Managing the cache could be done externally by helper-specific code.
Sorry, there's no documentation on the format or behavior, and most of the changes are in one big patch. If you're interested and find it unreadable, I can try to clean it up.
-Peff