From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Alan Braithwaite via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, ps@pks.im, christian.couder@gmail.com,
jonathantanmy@google.com, me@ttaylorr.com, gitster@pobox.com,
Jeff King <peff@peff.net>,
Alan Braithwaite <alan@braithwaite.dev>
Subject: Re: [PATCH v3] clone: add clone.<url>.defaultObjectFilter config
Date: Fri, 6 Mar 2026 10:39:31 +0000 [thread overview]
Message-ID: <aaqu44_sDJYcftWd@fruit.crustytoothpaste.net> (raw)
In-Reply-To: <pull.2058.v3.git.1772780113400.gitgitgadget@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2237 bytes --]
On 2026-03-06 at 06:55:13, Alan Braithwaite via GitGitGadget wrote:
> From: Alan Braithwaite <alan@braithwaite.dev>
>
> Add a new configuration option that lets users specify a default
> partial clone filter per URL pattern. When cloning a repository
> whose URL matches a configured pattern, git-clone automatically
> applies the filter, equivalent to passing --filter on the command
> line.
>
> [clone "https://github.com/"]
> defaultObjectFilter = blob:limit=5m
>
> [clone "https://internal.corp.com/large-project/"]
> defaultObjectFilter = blob:none
>
> URL matching uses the existing urlmatch_config_entry() infrastructure,
> following the same rules as http.<url>.* — you can match a domain,
> a namespace path, or a specific project, and the most specific match
> wins.
>
> The config only affects the initial clone. Once the clone completes,
> the filter is recorded in remote.<name>.partialCloneFilter, so
> subsequent fetches inherit it automatically. An explicit --filter
> flag on the command line takes precedence.
>
> Only the URL-qualified form (clone.<url>.defaultObjectFilter) is
> honored; a bare clone.defaultObjectFilter without a URL subsection
> is ignored.
We've historically not implemented default filtering for clones because
it makes it hard to reason about the behaviour of the clone command.
For instance, if I have a script that clones a repository, it almost
certainly expects a full clone unless it requested something else.
For instance, I run `foo setup` which clones my repository and then I
suspend my laptop. I go the airport and get on an airplane which lacks
Wi-Fi. I then run `foo blargle`, which operates on the repository, but
that fails because it was a partial clone and I'm offline. I didn't
realize this wouldn't work because I didn't know that the foo command
required a full clone since it's just a script I got from my distro.
We've traditionally placed this kind of customizable configuration into
`scalar` instead, which is designed to be configurable and set options
for large repositories that would want to control clone and fetch
options.
--
brian m. carlson (they/them)
Toronto, Ontario, CA
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
next prev parent reply other threads:[~2026-03-06 10:39 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-01 16:44 [PATCH] fetch, clone: add fetch.blobSizeLimit config Alan Braithwaite via GitGitGadget
2026-03-02 11:53 ` Patrick Steinhardt
2026-03-02 18:28 ` Jeff King
2026-03-02 18:57 ` Junio C Hamano
2026-03-02 21:36 ` Alan Braithwaite
2026-03-03 6:30 ` Patrick Steinhardt
2026-03-03 14:00 ` Alan Braithwaite
2026-03-03 15:08 ` Patrick Steinhardt
2026-03-03 17:58 ` Junio C Hamano
2026-03-04 5:07 ` Patrick Steinhardt
2026-03-03 17:05 ` Junio C Hamano
2026-03-03 14:34 ` Jeff King
2026-03-05 0:57 ` [PATCH v2] clone: add clone.<url>.defaultObjectFilter config Alan Braithwaite via GitGitGadget
2026-03-05 19:01 ` Junio C Hamano
2026-03-05 23:11 ` Alan Braithwaite
2026-03-06 6:55 ` [PATCH v3] " Alan Braithwaite via GitGitGadget
2026-03-06 10:39 ` brian m. carlson [this message]
2026-03-06 19:33 ` Junio C Hamano
2026-03-06 21:50 ` Alan Braithwaite
2026-03-06 21:47 ` [PATCH v4] " Alan Braithwaite via GitGitGadget
2026-03-06 22:18 ` Junio C Hamano
2026-03-07 1:04 ` Alan Braithwaite
2026-03-07 1:33 ` [PATCH v5] " Alan Braithwaite via GitGitGadget
2026-03-11 7:44 ` Patrick Steinhardt
2026-03-15 1:33 ` Alan Braithwaite
2026-03-15 5:37 ` [PATCH v6] " Alan Braithwaite via GitGitGadget
2026-03-15 21:32 ` Junio C Hamano
2026-03-16 7:47 ` Patrick Steinhardt
2026-05-11 2:38 ` Junio C Hamano
2026-05-11 7:30 ` Patrick Steinhardt
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=aaqu44_sDJYcftWd@fruit.crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=alan@braithwaite.dev \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=me@ttaylorr.com \
--cc=peff@peff.net \
--cc=ps@pks.im \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.