From: Tao Klerks <tao@klerks.biz>
To: Christian Couder <christian.couder@gmail.com>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
Jonathan Tan <jonathantanmy@google.com>,
Derrick Stolee <stolee@gmail.com>, git <git@vger.kernel.org>,
Taylor Blau <me@ttaylorr.com>
Subject: Re: [Question] Is extensions.partialClone defunct?
Date: Sat, 5 Jun 2021 15:01:58 +0200 [thread overview]
Message-ID: <CAPMMpohp4TPAD2yswY5zEvC5vqiY-zoXKCU4eqWWGRngmZVkhg@mail.gmail.com> (raw)
In-Reply-To: <CAP8UFD1ouu1EkJjGYuzJahZNX+QW-XyEPD-2Vfp8jMYNuVYkAA@mail.gmail.com>
Hi folks, my apologies if old thread reanimation is frowned upon, I
have not been able to find any indications that this is the case.
On Sat, Mar 14, 2020 at 6:43 AM Christian Couder
<christian.couder@gmail.com> wrote:
> On Fri, Mar 13, 2020 at 12:09 AM Jonathan Nieder <jrnieder@gmail.com> 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.
I was going to start a new thread about just this topic today, but
learned to use the archives instead, for better or for worse...
> > I can start writing a proposed patch to send this evening or tomorrow.
> That would be very much appreciated! Thanks!
Was this change ever attempted? Git's current behavior (as of 2.31.1)
appears to still violate the semantics of
core.repositoryformatversion=1 as documented at
https://github.com/git/git/blob/master/Documentation/technical/repository-version.txt,
and this has been the case since git 2.24.
I assume the right fix at this point would be to do something like
auto-detecting promisor remotes and/or packfiles and adding the
extensions.partialClone config key automatically/transparently. The
main question seems to be *what value* the config key should hold, if
there are multiple promisor remotes?
> > >> 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".
> > [...]
> > That suggests something like
> >
> > [extensions]
> > multiplePromisors = true
> > [...]
> > > 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.
>
> > 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.
>
I'm a little confused by suggestions to create a *new* extension key
here. In principle, this would mean that existing repositories
created/updated by the newest git version would declare themselves to
be incompatible with git clients that don't understand this
entirely-new key, even though:
* promisor packfiles are a reasonably longstanding thing now (several
years old),
* they have officially/theoretically been associated with the
"partialClone" extension key throughout that time (at least in the
docs), and
* partial clone is no longer considered "experimental" in any public doc,
The kind of sudden backwards-incompatibility implied by a new
"extensions.*" key seems... bad? (unless it's something that you
*newly* opt in to - which doesn't seem to be the case here)
Thanks,
Tao
next prev parent reply other threads:[~2021-06-05 13:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-12 12:23 [Question] Is extensions.partialClone defunct? Derrick Stolee
2020-03-12 17:07 ` Jonathan Tan
2020-03-12 17:51 ` Jonathan Nieder
2020-03-12 18:10 ` Junio C Hamano
2020-03-12 21:09 ` Taylor Blau
2020-03-12 21:17 ` Junio C Hamano
2020-03-12 21:30 ` Jeff King
2020-03-12 21:54 ` Christian Couder
2020-03-12 21:59 ` Christian Couder
2020-03-12 23:09 ` Jonathan Nieder
2020-03-14 6:43 ` Christian Couder
2021-06-05 13:01 ` Tao Klerks [this message]
2020-03-13 0:10 ` Junio C Hamano
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAPMMpohp4TPAD2yswY5zEvC5vqiY-zoXKCU4eqWWGRngmZVkhg@mail.gmail.com \
--to=tao@klerks.biz \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=jonathantanmy@google.com \
--cc=jrnieder@gmail.com \
--cc=me@ttaylorr.com \
--cc=stolee@gmail.com \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).