Subject: Re: [GSoC] extensions.partialClone and promisor remote fetch order

From: Lorenzo Pegorari <[email-masked]>
Date: Sat, 7 Mar 2026 15:58:05 +0100

On Sat, Mar 07, 2026 at 10:28:33AM +0100, Lorenzo Pegorari wrote:
> Hi everyone. In the past weeks I deeply studied the documentation
> regarding the GSoC'26 idea "Implement promisor remote fetch ordering". I
> am preparing a proposal that is as detailed as possible, and that tries
> to answer to as many questions as possible. I am also experimenting a
> lot with multiple promisor remotes configurations, and creating some
> examples that I will showcase in my proposal.
> 
> 
> I have a question regarding the interaction between the config
> "extensions.partialClone" and a possible fetch ordering mechanism:
>  * from my understanding, and from my personal tests, it looks like
>    "extensions.partialClone" is not essential when working with multiple
>    promisor remotes. Having these promisor remotes setted up with
>    "remote.<name>.promisor" and "remote.<name>.partialCloneFilter" seems
>    sufficient. In this case, the promisor remotes will be tried one
>    after the other, in the order in which they appear in the config.
>  * if "extensions.partialClone" is present, then the promisor remote
>    configured using the "extensions.partialClone" config var will be the
>    last one tried when fetching an object.
> 
> 1. is what I explained correct?
> 2. when the fetch ordering mechanism will be added, this config var will
>    not be useful anymore. How should it be handled? It probably can't
>    just be removed, so the fetch ordering mechanism should be flexible
>    enough to handle a situation where "extensions.partialClone" is
>    present, correct?
> 
> 
> Thanks,
> Lorenzo

Also, I see that "extensions.partialClone" is already necessary "to
prevent older versions of git from failing mid-operation because of
missing objects that they cannot handle".

This is one of the last issues that I still have to iron out before I
can send a satisfactory proposal draft.

[1]: https://git-scm.com/docs/git-config#Documentation/git-config.txt-partialClone
[2]: https://git-scm.com/docs/git-config#Documentation/git-config.txt-partialClone