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

Re: [PATCH v2 2/2] diff: batch fetching of missing blobs

From
Christian Couder <christian.couder@gmail.com>
Date
Apr 8, 2019, 06:40 UTC
Message-ID
<CAP8UFD0gmaZzfK7taS=1hj=sCEpLFt_Az60TxYeUqp2A7r25JQ@mail.gmail.com>
In-Reply-To
<xmqqy34lb4vb.fsf@gitster-ct.c.googlers.com>
On Mon, Apr 8, 2019 at 4:36 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
>
> Christian Couder <christian.couder@gmail.com> writes:
>
> >  #ifdef NO_FAST_WORKING_DIRECTORY
> >  #define FAST_WORKING_DIRECTORY 0
> > @@ -6489,7 +6490,7 @@ static void add_if_missing(struct oid_array *to_fetch,
> >
> >  void diffcore_std(struct diff_options *options)
> >  {
> > -    if (repository_format_partial_clone) {
> > +    if (has_promisor_remote()) {
>
> Hmph, I see quite a few references to the variable disappears
> between next and pu.  Is it that in the new world order, nobody
> outside the low-level object-access layer should look at the
> variable directly, but instead ask the has_promisor_remote()
> function?

Yeah, repository_format_partial_clone contains the remote configured in extensions.partialclone, while in the new world order there can be other promisor remotes than this one, and most of the code is only interested in asking if we use any promisor remote.

> If so, can we at least document that?  Making it static
> (or at least renaming it) would have helped the compiler to notice
> this semantic merge conflict better.
Ok, I will see if I can make it static (or maybe rename it).

Patch 3f82acbca2 (Use promisor_remote_get_direct() and has_promisor_remote(), 2019-04-01) in cc/multi-promisor starts with:

    Use promisor_remote_get_direct() and has_promisor_remote()
    Instead of using the repository_format_partial_clone global
    and fetch_objects() directly, let's use has_promisor_remote()
    and promisor_remote_get_direct().
    This way all the configured promisor remotes will be taken
    into account, not only the one specified by
    extensions.partialClone.

I will at least add something telling that in most cases "repository_format_partial_clone" and fetch_objects() shouldn't be used directly anymore.

Show 11 quoted lines
> > @@ -6506,8 +6507,7 @@ void diffcore_std(struct diff_options *options)
> >              /*
> >               * NEEDSWORK: Consider deduplicating the OIDs sent.
> >               */
> > -            fetch_objects(repository_format_partial_clone,
> > -                      to_fetch.oid, to_fetch.nr);
> > +            promisor_remote_get_direct(to_fetch.oid, to_fetch.nr);
>
> Likewise between fetch_objects() and promisor_remote_get_direct().
> Shouldn't the underlying fetch_objects be hidden from general
> callers?
I will see if I can do that, though it has to be used in promisor-remote.c.
Previous: Christian CouderNext: Junio C Hamano
Message 17 of 29 in “diff: batch fetching of missing blobs”
  1. diff: batch fetching of missing blobsJonathan Tan, Mar 26, 2019
  2. SZEDER GáborMar 27, 2019
  3. Johannes SchindelinMar 27, 2019
  4. Jeff KingMar 28, 2019
  5. 0/2 Batch fetching of missing blobs in diff and showJonathan Tan, Mar 29, 2019
  6. 1/2 sha1-file: support OBJECT_INFO_FOR_PREFETCHJonathan Tan, Mar 29, 2019
  7. Johannes SchindelinApr 5, 2019
  8. Jeff KingApr 5, 2019
  9. 2/2 diff: batch fetching of missing blobsJonathan Tan, Mar 29, 2019
  10. SZEDER GáborApr 4, 2019
  11. Johannes SchindelinApr 5, 2019
  12. Christian CouderApr 7, 2019
  13. Junio C HamanoApr 8, 2019
  14. Junio C HamanoApr 8, 2019
  15. Junio C HamanoApr 8, 2019
  16. Christian CouderApr 8, 2019
  17. Christian CouderApr 8, 2019
  18. Junio C HamanoApr 8, 2019
  19. Christian CouderApr 8, 2019
  20. Duy NguyenApr 5, 2019
  21. fixup! diff: batch fetching of missing blobsJonathan Tan, Apr 5, 2019
  22. Johannes SchindelinApr 5, 2019
  23. Duy NguyenApr 6, 2019
  24. Junio C HamanoApr 8, 2019
  25. Junio C HamanoApr 8, 2019
  26. Duy NguyenApr 8, 2019
  27. Junio C HamanoApr 9, 2019
  28. Johannes SchindelinApr 5, 2019
  29. Jeff KingApr 5, 2019

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.