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

Re: [PATCH v4 9/9] Documentation/config: add odb.<name>.promisorRemote

From
Jeff King <peff@peff.net>
Date
Nov 1, 2018, 21:16 UTC
Message-ID
<20181101211616.GA3280@sigill.intra.peff.net>
In-Reply-To
<CAP8UFD3nrhjANwNDqTwx5ZtnZNcnbAFqUN=u=LrvzuH4+3wQQA@mail.gmail.com>
On Wed, Oct 31, 2018 at 07:28:09AM +0100, Christian Couder wrote:
Show 15 quoted lines
> > For (2), I would like to see us improve the remote helper
> > infrastructure instead of introducing a new ODB helper.  Remote
> > helpers are already permitted to fetch some objects without listing
> > refs --- perhaps we will want to
> >
> >  i. split listing refs to a separate capability, so that a remote
> >     helper can advertise that it doesn't support that.  (Alternatively
> >     the remote could advertise that it has no refs.)
> >
> >  ii. Use the "long-running process" mechanism to improve how Git
> >      communicates with a remote helper.
> 
> Yeah, I agree that improving the remote helper infrastructure is
> probably better than what I have been trying to add. And I agree with
> the above 2 steps you propose.

One thing you might want to port over is the ability to ask the remote helper "tell me the type and size of these objects". The reason I built that into the original external-odb interface proposal was so that diff could easily skip large objects without faulting them in (because they're considered binary, and we'd just say "binary files differ" anyway). That makes things like "git log -p" work a lot better (try it with a blob-less partial clone now; it's pretty painful).

I know that's kind of the _opposite_ of how partial clones work now, where we try really hard not to have to even tell the client the full list of objects. That's good if the reason you want a partial clone is because there are gigantic numbers of objects (e.g., the Windows repo). But I think many people are interested in having a more moderate number of large objects (e.g., things like game development that are using git-lfs now). It would be great if we could support both use cases easily.

-Peff
Previous: Christian Couder
Message 23 of 23 in “Introducing remote ODBs”
  1. 0/9 Introducing remote ODBsChristian Couder, Aug 2, 2018
  2. 1/9 fetch-object: make functions return an error codeChristian Couder, Aug 2, 2018
  3. 2/9 Add initial remote odb supportChristian Couder, Aug 2, 2018
  4. 3/9 remote-odb: implement remote_odb_get_direct()Christian Couder, Aug 2, 2018
  5. 4/9 remote-odb: implement remote_odb_get_many_direct()Christian Couder, Aug 2, 2018
  6. 5/9 remote-odb: add remote_odb_reinit()Christian Couder, Aug 2, 2018
  7. 6/9 Use remote_odb_get_direct() and has_remote_odb()Christian Couder, Aug 2, 2018
  8. 7/9 Use odb.origin.partialclonefilter instead of core.partialclonefilterChristian Couder, Aug 2, 2018
  9. 8/9 t0410: test fetching from many promisor remotesChristian Couder, Aug 2, 2018
  10. 9/9 Documentation/config: add odb.<name>.promisorRemoteChristian Couder, Aug 2, 2018
  11. Stefan BellerAug 2, 2018
  12. Christian CouderSep 25, 2018
  13. Junio C HamanoSep 25, 2018
  14. Jeff KingSep 26, 2018
  15. Taylor BlauSep 26, 2018
  16. Junio C HamanoSep 26, 2018
  17. Jonathan NiederOct 16, 2018
  18. Jonathan TanOct 16, 2018
  19. Junio C HamanoOct 19, 2018
  20. Jonathan NiederOct 19, 2018
  21. Junio C HamanoOct 19, 2018
  22. Christian CouderOct 31, 2018
  23. Jeff KingNov 1, 2018

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.