From: Alan Braithwaite Date: Mon, 02 Mar 2026 21:36:40 GMT Subject: Re: [PATCH] fetch, clone: add fetch.blobSizeLimit config Message-ID: In-Reply-To: Patrick, Peff, Junio — thanks for taking the time to look at this. Patrick wrote: > I'm not sure that we should make blob size limiting the > default. To clarify — this is a user-opt-in config, not a default. You would only get partial clone behavior if you explicitly set fetch.blobSizeLimit in your gitconfig. Peff wrote: > We actually can do blob:limit filters with bitmaps. See > 84243da129 (pack-bitmap: implement BLOB_LIMIT filtering, > 2020-02-14). Good to know. I'm not positive, but my understanding is that this patch only touches client code, and the server sees an identical request to what `git clone --filter=blob:limit=1m` already sends today. If that's correct, anyone can already impose that cost — this patch just makes it easier to opt in. > All that said, I'd be wary of turning on partial clones like > this by default. That's fair. I'm not attached to getting this merged — it was more exploratory to start a discussion. Junio wrote: > As to this extra variable, it can already be done with > existing remote.*.partialCloneFilter, it seems, so I do not > know why we want to add it. I may not understand the config as well as you do, but my reading is that remote.*.partialCloneFilter requires a specific remote name and only takes effect on subsequent fetches from an already-registered promisor remote — not the initial clone. You would also need remote.origin.promisor=true set globally, which seems odd. If I'm understanding correctly, there is currently no way to say "all new clones should use a blob size filter" via config alone. But please correct me if I'm wrong. Separately — is my understanding correct that partial clone with blob:limit works today without server-side changes, assuming uploadpack.allowFilter is enabled? If so, I'm happy to maintain this as a local client patch for my own workflow. Thanks again, Alan On Mon, Mar 2, 2026, at 10:57, Junio C Hamano wrote: > Patrick Steinhardt writes: > >> I'm not sure that we should make blob size limiting the default. The >> problem with specifying a limit is that this is comparatively expensive >> to compute on the server side: we have to look up each blob so that we >> can determine its size. Unfortunately, such requests cannot (currently) >> be optimized via for example bitmaps, or any other cache that we have. >> ... >> Another question to consider: is it really sensible to set this setting >> globally? It is very much dependent on the forge that you're connecting >> to, as forges may not even allow object filters at all, or only a subset >> of them. > > Both are good questions, but to affect "clone" you'd need either > "git -c that.variable=setting clone" or have it in ~/.gitconfig no? > > As to this extra variable, it can already be done with existing > remote.*.partialCloneFilter, it seems, so I do not know why we want > to add it.