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

Re: RFC: Design and code of partial clones (now, missing commits and trees OK)

From
JTJonathan Tan <jonathantanmy@google.com>
Date
Sep 29, 2017, 20:21 UTC
Message-ID
<20170929132128.3071d469cd8f80a86ce6b680@google.com>
In-Reply-To
<c3245fd2-cff4-0266-37e9-35b307e0357b@alum.mit.edu>

On Tue, 26 Sep 2017 17:26:33 +0200 Michael Haggerty <mhagger@alum.mit.edu> wrote:

Show 6 quoted lines
> Maybe naming has been discussed at length before, and I am jumping into
> a long-settled topic. And admittedly this is bikeshedding.
> 
> But I find these names obscure, even as a developer. And terms like this
> will undoubtedly bleed into the UI and documentation, so it would be
> good to put some effort into choosing the best names possible.
Names are definitely not a long-settled topic. :-)
I agree that naming is important, and thanks for your efforts.
Show 11 quoted lines
> I suppose that the term "promisor" comes from the computer science term
> "promise" [1]. In that sense it is apt, because, say, a promisor object
> is something that is known to be obtainable, but we don't have it yet.
> 
> But from the user's point of view, I think this isn't a very
> illuminating term. I think the user's mental model will be that there is
> a distinguished remote repository that holds the project's entire
> published history, and she has to remain connected to it for certain Git
> operations to work [2]. Another interesting aspect of this remote is
> that it has to be trusted never (well, almost never) to discard any
> objects [3].

Yes, that is the mental model I have too. I think the ordinary meaning of the word "promise" works, though - you're not working completely on things you have, but you're working partly based on the guarantees (or promises) that this distinguished remote repository gives.

> Personally I think "lazy remote" and "backing remote" are not too bad.

I think these terms are imprecise. "Lazy remote" seems to me to imply that it is the remote that is lazy, not us.

"Backing remote" does evoke the concept of a "backing store". For me, the ability to transfer objects to the backing store to be stored permanently (so that you don't have to store it yourself) is an essential part of a backing store, and that is definitely something we don't do here (although, admittedly, such a feature might be useful), so I don't agree with that term. But if transferring objects is not essential to a backing store, or if adding such a feature is a natural fit to the partial clone feature, maybe we could use that.

Show 5 quoted lines
> [2] I haven't checked whether the current proposal allows for
>     multiple "promisor remotes". It's certainly thinkable, if not
>     now then in the future. But I suppose that even then, 99% of
>     users will configure a single "promisor remote" for each
>     repository.

It does not allow for multiple "promisor remotes". Support for that would require upgrades in the design (including knowing which remote to fetch a missing object from), but otherwise I agree with your statements.

Previous: Michael HaggertyNext: Jeff Hostetler
Message 8 of 21 in “RFC: Design and code of partial clones (now, missing commits and trees OK)”
  1. Jonathan TanSep 15, 2017
  2. Junio C HamanoSep 19, 2017
  3. Jeff HostetlerSep 21, 2017
  4. Jonathan TanSep 21, 2017
  5. Jeff HostetlerSep 22, 2017
  6. Jonathan TanSep 22, 2017
  7. Michael HaggertySep 26, 2017
  8. Jonathan TanSep 29, 2017
  9. Jeff HostetlerSep 21, 2017
  10. Jonathan TanSep 21, 2017
  11. Jeff HostetlerSep 22, 2017
  12. Jonathan TanSep 22, 2017
  13. Jeff HostetlerSep 26, 2017
  14. Jeff HostetlerSep 21, 2017
  15. Jonathan TanSep 21, 2017
  16. Jeff HostetlerSep 22, 2017
  17. Jonathan TanSep 22, 2017
  18. Jeff HostetlerSep 26, 2017
  19. Jonathan TanSep 26, 2017
  20. Jonathan TanSep 29, 2017
  21. Junio C HamanoSep 29, 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.