On 2020-07-23 at 04:15:37, Junio C Hamano wrote: > "brian m. carlson" writes: > > >> By declaring that the repository is invalid if its version is less > >> than 1 and objectFormat extension defined, we prevent unwanted > >> upgrading from happening by mistake. > > > > Yes, and more specifically: > > > > * If the repository is v0 and has an objectFormat set, we fail in newer > > versions of Git (i.e., after this series). Older versions which do > > not support the extension will see breakage (because unknown > > extensions are not fatal in v0), but we hope by adding this check that > > nobody will ever configure a repo this way, since it will be totally > > nonfunctional in this state, regardless of version. > > * If the repository is v1 and has an objectFormat set, we work with > > newer Git and everything is great. Older Git versions fail hard here, > > and the user gets a moderately helpful error message. > > > > v2 of the series just ignored the setting in v0, which would make it > > equally broken in older and newer versions, but would provide a less > > useful error message (probably about a corrupt index). > > Peff's 'jk/reject-newer-extensions-in-v0' uses a bit refactored code > to make it easier to add only-v1-and-later extensions while rejecting > them, even if the code knows about them, in v0 repository. Even > though the mechanism is a bit different, the spirit is quite the > same as this step. > > Please double check origin/seen:setup.c to see if I resolved textual > conflicts in a sensible way. Yes, this seems quite sensible, and exactly the resolution I was hoping for. -- brian m. carlson: Houston, Texas, US