Re: [Question] Is extensions.partialClone defunct?
- From
Christian Couder <christian.couder@gmail.com>
- Date
- Mar 14, 2020, 06:43 UTC
- Message-ID
- <CAP8UFD1ouu1EkJjGYuzJahZNX+QW-XyEPD-2Vfp8jMYNuVYkAA@mail.gmail.com>
- In-Reply-To
- <20200312230931.GF120942@google.com>
Hi,
On Fri, Mar 13, 2020 at 12:09 AM Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 20 quoted lines
> > Christian Couder wrote: > >> Jonathan Tan wrote: > > >>> Hmm...besides giving the name of the promisor remote, the > >>> extensions.partialClone setting is there to prevent old versions of Git > >>> (that do not know this extension) from manipulating the repo. > > > > That could be true of "remote.<name>.promisor = true". > > To be clear, Jonathan is referring to a specific feature of the > extensions.* settings. See > Documentation/technical/repository-version.txt for details: > > 2. If a version-1 repository specifies any `extensions.*` keys that > the running git has not implemented, the operation MUST NOT > proceed. Similarly, if the value of any known key is not understood > by the implementation, the operation MUST NOT proceed. > > No other config key has that property.
Yeah, right. I was very tired and it was late when I replied, so I was confused.
Show 11 quoted lines
> > On Thu, Mar 12, 2020 at 6:51 PM Jonathan Nieder <jrnieder@gmail.com> wrote: > > >> Christian, what would your prefered way be to fix this? Should > >> extensions.partialclone specify a particular "default" promisor > >> remote, or should we use a new repository extension for multiple > >> promisors? > [...] > > So I'd rather obsolete "extensions.partialClone = <remote>" and to > > find other ways. > > I *think* that means "new repository extension".
Yeah.
> That suggests something like > > [extensions] > multiplePromisors = true
Yeah, I think I suggested "[extensions]\npromisorremotes=<bool>" but "multiplePromisors" is probably better.
Show 12 quoted lines
> > or maybe > > we could have another extension alltogether like > > "[extensions]\npromisorremotes=<bool>" and over time obsolete > > "extensions.partialClone" altogether. I prefer the later. > > I think we're going to have to continue to support > extensions.partialClone=<remote> for a long time anyway (breaking the > ability to work with existing repositories is expensive), so I'm > reasonably comfortable with multiplePromisors being a separate > extension. Some faraway day, we can introduce > "repositoryFormatVersion = 2" that mandates support for these > extensions by default, allowing us to clean up and simplify.
Yeah, I agree.
> I can start writing a proposed patch to send this evening or tomorrow.
That would be very much appreciated! Thanks!
> This behavior has been around for a few releases so it would want to > cook until the 2.27 cycle.
Yeah, and partial clone is experimental, so I think it's ok.