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

Re: Partial clone design (with connectivity check for locally-created objects)

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 4, 2017, 22:51 UTC
Message-ID
<xmqqtw1nrlpf.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170804145113.5ceafafa@twelve2.svl.corp.google.com>
Jonathan Tan <jonathantanmy@google.com> writes:
Show 8 quoted lines
> "Imported" objects must be in a packfile that has a "<pack name>.remote"
> file with arbitrary text (similar to the ".keep" file). They come from
> clones, fetches, and the object loader (see below).
> ...
> A "homegrown" object is valid if each object it references:
>  1. is a "homegrown" object,
>  2. is an "imported" object, or
>  3. is referenced by an "imported" object.

Overall it captures what was discussed, and I think it is a good start.

I doubt you want to treat all fetches/clones the same way as the "lazy object" loading, though. You may be critically rely on the corporate central server that will give the objects it "promised" when you cloned from it lazily (i.e. it may have given you a commit, but not its parents or objects contained in its tree--you still know that the parents and the tree and its contents will later be available and rely on that fact). You trust that and build on top, so the packfile you obtained when you cloned from such a server should count as "imported". But if you exchanged wip changes with your colleages by fetching or pushing peer-to-peer, without the corporate central server knowing, you would want to treat objects in packs (or loose objects) you obtained that way as "not imported".

Also I think "imported" vs "homegrown" may be a bit misnomer; the idea to split objects into two camps sounds like a good idea, and "imported" probably is an OK name to use for the category that is a group of objects to which you know/trust are backed by your lazy loader. But the other one does not have to be "home"-grown.

Well, the names are not that important, but I think the line between the two classes should not be "everything that came from clone and fetch is imported", which is a more important point I am trying to make.

Thanks.
Previous: Jonathan TanNext: Jonathan Tan
Message 2 of 18 in “Partial clone design (with connectivity check for locally-created objects)”
  1. Jonathan TanAug 4, 2017
  2. Junio C HamanoAug 4, 2017
  3. Jonathan TanAug 5, 2017
  4. Ben PeartAug 7, 2017
  5. Jonathan NiederAug 7, 2017
  6. Ben PeartAug 8, 2017
  7. Junio C HamanoAug 7, 2017
  8. Ben PeartAug 8, 2017
  9. Jonathan NiederAug 8, 2017
  10. Jonathan TanAug 7, 2017
  11. Updated "imported object" designJonathan Tan, Aug 16, 2017
  12. Junio C HamanoAug 16, 2017
  13. Jonathan TanAug 16, 2017
  14. Ben PeartAug 17, 2017
  15. Jonathan TanAug 17, 2017
  16. Ben PeartAug 18, 2017
  17. Jonathan TanAug 18, 2017
  18. Ben PeartAug 17, 2017

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.