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

Re: [PATCH 2/2] fetch: forgo full connectivity check if --filter

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 30, 2020, 18:57 UTC
Message-ID
<xmqqimksdb6w.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20200129204326.GB17350@google.com>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 22 quoted lines
> Jonathan Tan wrote:
>
>> If a filter is specified, we do not need a full connectivity check on
>> the contents of the packfile we just fetched; we only need to check that
>> the objects referenced are promisor objects.
>>
>> This significantly speeds up fetches into repositories that have many
>> promisor objects, because during the connectivity check, all promisor
>> objects are enumerated (to mark them UNINTERESTING), and that takes a
>> significant amount of time.
>>
>> Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
>> ---
>> For example, a local fetch was sped up from 6.63s to 3.39s. The bulk of
>> the remaining time is spent in yet another connectivity check
>> (fetch_refs -> check_exist_and_connected) prior to the fetch - that will
>> hopefully be done in a subsequent patch.
>
> Can this information (at least the speedup) be included in the comment
> message?
>
> Or even better, can we demonstrate the impact using a perf test?

It does make sense, but let's queue these two first and then add it as a follow-up patch on top.

Thanks for writing and reviewing.
Previous: Jonathan Nieder
Message 6 of 6 in “Skip a connectivity check during fetch --filter”
  1. 0/2 Skip a connectivity check during fetch --filterJonathan Tan, Jan 12, 2020
  2. 1/2 connected: verify promisor-ness of partial cloneJonathan Tan, Jan 12, 2020
  3. Jonathan NiederJan 29, 2020
  4. 2/2 fetch: forgo full connectivity check if --filterJonathan Tan, Jan 12, 2020
  5. Jonathan NiederJan 29, 2020
  6. Junio C HamanoJan 30, 2020

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.