git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 26 in “Bringing a bit more sanity to $GIT_DIR/objects/info/alternates?”
  1. Junio C HamanoAug 5, 2012
  2. Michael HaggertyAug 5, 2012
  3. Junio C HamanoAug 5, 2012
  4. Jeff KingAug 7, 2012
  5. Junio C HamanoAug 6, 2012
  6. Sascha CunzAug 8, 2012
  7. Hallvard Breien FurusethAug 11, 2012
  8. Oswald BuddenhagenAug 27, 2012
  9. GC of alternate object store (was: Bringing a bit more sanity to $GIT_DIR/objects/info/alternates?)Hallvard Breien Furuseth, Aug 28, 2012
  10. Oswald BuddenhagenAug 29, 2012
  11. Junio C HamanoAug 29, 2012
  12. Oswald BuddenhagenAug 30, 2012
  13. Junio C HamanoAug 30, 2012
  14. Oswald BuddenhagenAug 31, 2012
  15. Dan JohnsonAug 31, 2012
  16. Junio C HamanoAug 31, 2012
  17. fetch --all: pass --tags/--no-tags through to each remoteDan Johnson, Sep 1, 2012
  18. Jeff KingSep 1, 2012
  19. 1/2 argv-array: add pop functionJeff King, Sep 1, 2012
  20. 2/2 fetch: use argv_array instead of hand-building arraysJeff King, Sep 1, 2012
  21. Jens LehmannSep 1, 2012
  22. submodule: use argv_array instead of hand-building arraysJens Lehmann, Sep 1, 2012
  23. Jeff KingSep 1, 2012
  24. 3/2 argv-array: fix bogus cast when freeing arrayJeff King, Sep 1, 2012
  25. [PATCHv2] fetch --all: pass --tags/--no-tags through to each remoteDan Johnson, Sep 5, 2012
  26. Junio C HamanoSep 7, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.