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
Jonathan Nieder <jrnieder@gmail.com>
Date
Oct 19, 2018, 00:33 UTC
Message-ID
<20181019003325.GA30421@aiede.svl.corp.google.com>
In-Reply-To
<xmqqwoqe4xev.fsf@gitster-ct.c.googlers.com>
Junio C Hamano wrote:
> Jonathan Tan <jonathantanmy@google.com> writes:
>> Jonathan Nieder wrote:
Show 16 quoted lines
>>> 	[object]
>>> 		missingObjectRemote = local-cache-remote
>>> 		missingObjectRemote = origin
>>
>> In the presence of missingObjectRemote, old versions of Git, when lazily
>> fetching, would only know to try the extensions.partialClone remote. But
>> this is safe because existing data wouldn't be clobbered (since we're
>> not using ideas like adding meaning to the contents of the .promisor
>> file). Also, other things like fsck and gc still work.
>
> It is a good idea to implicitly include the promisor-remote to the
> set of secondary places to consult to help existing versions of Git,
> but once the repository starts fetching incomplete subgraphs and
> adding new object.missingobjectremote [*1*], these versions of Git
> will stop working correctly, so I am not sure if it is all that
> useful approach for compatibility in practice.

Can you spell this out for me more? Do you mean that a remote from this list might make a promise that the original partialClone remote can't keep?

If we're careful to only page in objects that were promised by the original partialClone remote, then a promise "I promise to supply you on demand with any object directly or indirectly reachable from any object you have fetched from me" from the partialClone remote should be enough.

> [Footnote]
>
> *1* That name with two "object" in it sounds horrible.

Sorry about that. Another name used while discussing this was objectAccess.promisorRemote. As long as the idea is clear (that this means "remotes to use when attempting to obtain an object that is not already available locally"), I am not attached to any particular name.

Thanks, Jonathan

Previous: Junio C HamanoNext: Junio C Hamano
Message 20 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.