Re: [PATCH 2/2] repository: allow repository format upgrade with extensions
From: Jeff King <hidden>
Date: 2020-07-17 15:27:46
On Thu, Jul 16, 2020 at 04:50:34PM -0700, Junio C Hamano wrote:
quoted
- improving the behavior when an extension not supported in v0 is encountered in a v0 repository. For extensions that are supported in v1 and not v0, we should presumably error out so the user can repair the repository, and we can put the "noop" extension in that category for the sake of easy testing. We can also include a check in "git fsck" for repositories that request the undefined behavior of v0 repositories with non-v0 extensions, for faster diagnosis. What about unrecognized extensions that are potentially extensions yet to be defined? Should these be silently ignored to match the historical behavior, or should we error out even in repository format v0? I lean toward the latter; we'll need to be cautious, though, e.g. by making this a separate patch so we can easily tweak it if this ends up being disruptive in some unanticipated way.I disagree with your first paragraph. Those that weren't honored by mistake back in v0 days, in addition to those that aren't known to us even now, should just be silently ignored, not causing an error.
That's very much the opposite of my patch. As we add new extensions, those "unknowns" will start to die(). I remain unconvinced that there are a bunch of unknown extension.* config options hanging around in the wild, but maybe I'm being naive. It seems to me more likely that users will be helped by warning about extensions that _should_ have had v1 set than that they will be harmed because they put random crap in their extensions.* config. But maybe you know of a specific example? Anyway, if we move to "v1" as the default for "git init" anyway, then the number of people being helped would become much smaller.
quoted
My preference would be to move forward in 2.28 with the first two patches in that topic branch (i.e., *not* the third yet), since they don't produce any user facing behavior that would create danger for users or clash with this plan.Yup, I agree. I'd give another name to the third commit and then rewind jn/v0-with-extensions-fix by one to prevent mistakes from happening. Thanks.
OK. I was confused to see it still at the tip in the latest What's Cooking, but I think we're just crossing emails. :) -Peff