Git development
 help / color / mirror / Atom feed
From: Phillip Wood <phillip.wood123@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Harald Nordgren <haraldnordgren@gmail.com>,
	Harald Nordgren via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org, "D. Ben Knoble" <ben.knoble@gmail.com>
Subject: Re: [PATCH v13 0/6] fetch: avoid fetching every branch of a new remote in a shallow repo
Date: Thu, 12 Nov 2026 11:16:54 +0000	[thread overview]
Message-ID: <5566b994-1070-41d3-807b-5fac9ddaa3d8@gmail.com> (raw)
In-Reply-To: <xmqqcxsbnub5.fsf@gitster.g>

On 11/11/2026 17:37, Junio C Hamano wrote:
> Phillip Wood <phillip.wood123@gmail.com> writes:
>> On 11/11/2026 08:31, Harald Nordgren wrote:
>>> Hi, could I get some (hopefully final) reviews here?
>>
>> The diffstat for this series is
>>
>> 12 files changed, 593 insertions(+), 33 deletions(-)
>>
>> which will take a considerable amount of time to review properly. Yet
>> the cover letter which should explain the problem being solved, how it
>> is solved (i.e. the design and any trade-offs that entails, alternatives
>> that were discarded etc.) and anything notable in the implementation is just
>>
>> Avoid fetching every branch of a new remote in a shallow repo.
>>
>> I've no idea from that how these patches relate to the discussion on
>> separating "which refs to fetch" from "where to store those refs" or
>> anything else. If you want people to volunteer their time to review your
>> patches you need to make a effort to explain what those patches do.
> 
> I would say that it is a fair comment.
> 
> I understand what the first three wants to do.
> 
>   1. We have had for a long time "git fetch --refmap=from:to remote refs..."
>      given on the command line to decide how refs fetched are stored
>      separately from what refs are fetched.  This allows a configuration
>      to allow you to pretend that you give it all the time.
> 
>   2. Preliminary refactoring of a helper that will gain second
>      callsite in the next step.
> 
>   3. This allows "git fetch --refmap=from:to remote" that does not
>      specify what to fetch (contrast it with 1. above) to default to
>      fetch refs that our local branches build on.  The net effect
>      with configured remote.<remote>.fetchRefmap is that "git fetch
>      remote" would only fetch and store selected refs from them, only
>      the ones that we "care about" (aka "build on").

Thanks for the summary. I'm still not keen on patch 3 as I said in [1] I 
think it is a mistake to use the same variable for both "what to fetch" 
and "where to store it". After patch 1 we have the 
remote.<name>.fetchRefmap for "where to store it" and can use use 
remote.<name>.fetch for "what to fetch" (though I am concerned about the 
doubling up that happens when "fetchRefmap" is set and "fetch" is a 
refspec). We don't need a special case for when there are no refspecs on 
the command line - we can use the default values of those config 
settings instead and the user can configure the behavior that they want.

> I do not have strong opinion on the other 3 patches.  4. and 5. may
> help ergonomics by allowing to set up refmap from the command line
> option, but from my point of view it looks more like icing on the
> cake.

I think having a way to set up fetching a limited set of branches is 
worthwhile, but it does not need to be part of the same series.

> When we are working with only a subset of their branches, the first
> thing that comes to my mind is a "matching push" that does not need
> any fancy @{push} support.  Because of that, I am not interested in
> 6. very much.

I've not looked at what that patch does

> In any case, this topic one is keeping a topic by another author
> waiting to settle, so we have stronger incentive to see it move past
> the finish line.

What topic is that? - I can't see anything marked as depending on this 
in the latest "what's cooking" email. Would merging the first part of 
this series unblock the other one?

Thanks

Phillip

  parent reply	other threads:[~2026-11-12 11:16 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-19 14:47 [PATCH] fetch: add config to avoid fetching every branch in shallow repo Harald Nordgren via GitGitGadget
2026-09-21 13:28 ` Phillip Wood
2026-09-21 21:45   ` Harald Nordgren
2026-09-22 13:00     ` Harald Nordgren
2026-09-22 14:53       ` Phillip Wood
2026-09-22 15:37         ` Harald Nordgren
2026-09-23 15:14           ` Phillip Wood
2026-09-22 17:11   ` Junio C Hamano
2026-09-22 21:40     ` Harald Nordgren
2026-09-23 15:19     ` Phillip Wood
2026-09-23 15:34       ` Junio C Hamano
2026-09-23 16:55         ` D. Ben Knoble
2026-09-23 19:50           ` Junio C Hamano
2026-09-24 17:10             ` D. Ben Knoble
2026-09-24 18:02               ` Junio C Hamano
2026-09-23 20:35 ` [PATCH v2] fetch: avoid fetching every branch of a new remote in a " Harald Nordgren via GitGitGadget
2026-09-23 21:38   ` Junio C Hamano
2026-09-25 10:49 ` [PATCH v3 0/4] " Harald Nordgren via GitGitGadget
2026-09-25 10:49   ` [PATCH v3 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-09-25 22:38     ` Junio C Hamano
2026-09-25 10:50   ` [PATCH v3 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-09-25 23:26     ` Junio C Hamano
2026-09-25 10:50   ` [PATCH v3 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-09-25 10:50   ` [PATCH v3 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-09-29  9:19 ` [PATCH v4 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-09-29  9:19   ` [PATCH v4 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-09-29  9:19   ` [PATCH v4 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-09-29  9:27     ` Harald Nordgren
2026-09-29 20:17     ` Junio C Hamano
2026-09-29  9:19   ` [PATCH v4 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-09-29  9:19   ` [PATCH v4 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-09-29 19:36   ` [PATCH v4 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Junio C Hamano
2026-10-02  7:13 ` [PATCH v5 " Harald Nordgren via GitGitGadget
2026-10-02  7:13   ` [PATCH v5 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-02  7:13   ` [PATCH v5 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-02  7:13   ` [PATCH v5 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-02 16:28     ` Junio C Hamano
2026-10-02  7:13   ` [PATCH v5 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-04  8:31 ` [PATCH v6 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-04  8:31   ` [PATCH v6 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-04  8:31   ` [PATCH v6 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-04  8:31   ` [PATCH v6 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-04  8:31   ` [PATCH v6 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-04 17:17   ` [PATCH v6 0/4] fetch: avoid fetching every branch of a new remote in a shallow repo Junio C Hamano
2026-10-04 19:51     ` Harald Nordgren
2026-10-05 12:17       ` Junio C Hamano
2026-10-05 18:09         ` Harald Nordgren
2026-10-07 21:56 ` [PATCH v7 " Harald Nordgren via GitGitGadget
2026-10-07 21:56   ` [PATCH v7 1/4] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-07 21:56   ` [PATCH v7 2/4] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-08 16:59     ` Junio C Hamano
2026-10-09  7:05       ` Harald Nordgren
2026-10-09  8:09       ` Harald Nordgren
2026-10-07 21:56   ` [PATCH v7 3/4] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-07 21:56   ` [PATCH v7 4/4] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-10  8:02 ` [PATCH v8 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-10  8:02   ` [PATCH v8 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-10  8:02   ` [PATCH v8 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-10 17:11     ` Junio C Hamano
2026-10-10 18:36       ` Harald Nordgren
2026-10-10  8:02   ` [PATCH v8 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-10  8:02   ` [PATCH v8 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-10 17:16     ` Junio C Hamano
2026-10-10  8:02   ` [PATCH v8 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-14  7:04 ` [PATCH v9 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-14  7:04   ` [PATCH v9 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-14  7:04   ` [PATCH v9 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-14  7:04   ` [PATCH v9 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-14  7:04   ` [PATCH v9 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-14  7:04   ` [PATCH v9 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-20 13:42 ` [PATCH v10 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-20 13:42   ` [PATCH v10 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-24 15:08     ` D. Ben Knoble
2026-10-24 17:18       ` Harald Nordgren
2026-10-25 14:14         ` D. Ben Knoble
2026-10-25 16:47           ` Harald Nordgren
2026-10-25 22:15           ` Junio C Hamano
2026-10-26  8:21             ` Harald Nordgren
2026-10-26 15:48               ` Junio C Hamano
2026-10-27 17:03                 ` Phillip Wood
2026-10-27 17:21                   ` Junio C Hamano
2026-10-28 16:16                     ` Phillip Wood
2026-10-28 17:42                       ` Junio C Hamano
2026-10-28 20:57                         ` Harald Nordgren
2026-10-29 16:26                         ` Phillip Wood
2026-10-29 22:18                           ` Junio C Hamano
2026-10-26 10:44             ` Phillip Wood
2026-10-26 15:51               ` Junio C Hamano
2026-10-26  9:44     ` Phillip Wood
2026-10-29 14:30       ` Ben Knoble
2026-10-29 14:50         ` Harald Nordgren
2026-10-29 22:21         ` Junio C Hamano
2026-10-30 10:14           ` Harald Nordgren
2026-11-07 20:20           ` Notes, refs, etc. (was: Re: [PATCH v10 1/5] fetch: add remote.<name>.refmap) D. Ben Knoble
2026-10-20 13:42   ` [PATCH v10 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-24 15:08     ` D. Ben Knoble
2026-10-25 17:20       ` Harald Nordgren
2026-10-27 19:41         ` D. Ben Knoble
2026-10-20 13:42   ` [PATCH v10 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-24 15:09     ` D. Ben Knoble
2026-10-25 17:27       ` Harald Nordgren
2026-10-20 13:42   ` [PATCH v10 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-24 15:11     ` D. Ben Knoble
2026-10-20 13:42   ` [PATCH v10 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-24 15:13     ` D. Ben Knoble
2026-10-25 18:12       ` Harald Nordgren
2026-10-23 23:13   ` [PATCH v10 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Junio C Hamano
2026-10-24 15:15     ` D. Ben Knoble
2026-10-26  9:43     ` Phillip Wood
2026-10-26 15:44       ` Junio C Hamano
2026-10-27 12:22         ` Harald Nordgren
2026-10-27 17:04         ` Phillip Wood
2026-10-25 20:25 ` [PATCH v11 " Harald Nordgren via GitGitGadget
2026-10-25 20:25   ` [PATCH v11 1/5] fetch: add remote.<name>.refmap Harald Nordgren via GitGitGadget
2026-10-25 20:25   ` [PATCH v11 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-25 20:25   ` [PATCH v11 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-25 20:25   ` [PATCH v11 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-25 20:25   ` [PATCH v11 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-27 12:24 ` [PATCH v12 0/5] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-27 12:24   ` [PATCH v12 1/5] fetch: add remote.<name>.fetchRefmap Harald Nordgren via GitGitGadget
2026-10-27 12:24   ` [PATCH v12 2/5] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-27 12:24   ` [PATCH v12 3/5] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-27 12:24   ` [PATCH v12 4/5] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-27 12:24   ` [PATCH v12 5/5] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-30 10:52 ` [PATCH v13 0/6] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren via GitGitGadget
2026-10-30 10:52   ` [PATCH v13 1/6] fetch: add remote.<name>.fetchRefmap Harald Nordgren via GitGitGadget
2026-11-12 11:00     ` Phillip Wood
2026-10-30 10:52   ` [PATCH v13 2/6] fetch: extract collect_upstream_from_remote() helper Harald Nordgren via GitGitGadget
2026-10-30 10:52   ` [PATCH v13 3/6] fetch: infer branches to fetch from a refmap-only remote Harald Nordgren via GitGitGadget
2026-10-30 10:52   ` [PATCH v13 4/6] remote: add "git remote add --limited-fetch" Harald Nordgren via GitGitGadget
2026-10-30 10:52   ` [PATCH v13 5/6] remote: default to --limited-fetch in a shallow repository Harald Nordgren via GitGitGadget
2026-10-30 10:52   ` [PATCH v13 6/6] remote: resolve @{push} through remote.<name>.fetchRefmap Harald Nordgren via GitGitGadget
2026-11-11 18:27     ` D. Ben Knoble
2026-11-11 22:10       ` Junio C Hamano
2026-11-11  8:31   ` [PATCH v13 0/6] fetch: avoid fetching every branch of a new remote in a shallow repo Harald Nordgren
2026-11-11 14:12     ` Phillip Wood
2026-11-11 17:37       ` Junio C Hamano
2026-11-11 18:35         ` D. Ben Knoble
2026-11-12 11:16         ` Phillip Wood [this message]
2026-11-12 15:25           ` Matt Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5566b994-1070-41d3-807b-5fac9ddaa3d8@gmail.com \
    --to=phillip.wood123@gmail.com \
    --cc=ben.knoble@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=haraldnordgren@gmail.com \
    --cc=phillip.wood@dunelm.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox