Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: >> If you don't mind, I was already going to squash Junio's commit into >> mine (almost completely replacing mine) but I could add a small >> commit on top that provides the following improvement to the error >> message: > > I don't mind at all. I'd just like to know that v2.28.0 avoids confusing > users in the same was as v2.28.0-rc0 confused me. In a nearby thread, Jonathan Nieder raised an interesting approach to avoid confusing users, which I think (if I am reading him correctly) makes sense (cf. <20200714040616.GA2208896@xxxxxxxxxx>) What if we accept the extensions the code before the topic in question that was merged in -rc0 introduced the "confusion" accepts even in v0? If we see extensions other than those handpicked and grandfathered ones (which are presumably the ones we add later and support in v1 and later repository versions) in a v0 repository, we keep ignoring. Also we'd loosen the overly strict code that prevents upgrading from v0 to v1 in the presence of any extensions in -rc0, so that the grandfathered ones will not prevent the upgrading. The original reasoning behind the strict check was because the users could have used extensions.frotz for their own use with their own meaning, trusting that Git would simply ignore it, and an upgrade to later version in which Git uses extensions.frotz for a purpose that is unrelated to the reason why these users used would just break the repository. But the ones that were (accidentally) honored in v0 couldn't have been used by the users for the purposes other than how Git would use them anyway, so there is no point to make them prevent the upgrade of the repository version from v0 to v1. At least, that is how I understood the world would look like in Jonathan's "different endgame". What do you three (Dscho, Derrick and Jonathan) think? > Thanks, > Dscho > >> >> diff --git a/builtin/config.c b/builtin/config.c >> index 5e39f618854..b5de7982a93 100644 >> --- a/builtin/config.c >> +++ b/builtin/config.c >> @@ -678,8 +678,9 @@ int cmd_config(int argc, const char **argv, const char *prefix) >> else if (worktrees[0] && worktrees[1]) >> die(_("--worktree cannot be used with multiple " >> "working trees unless the config\n" >> - "extension worktreeConfig is enabled. " >> - "Please read \"CONFIGURATION FILE\"\n" >> + "extension worktreeConfig is enabled " >> + "and core.repositoryFormatVersion is at least\n" >> + "1. Please read \"CONFIGURATION FILE\"" >> "section in \"git help worktree\" for details")); >> else >> given_config_source.file = git_pathdup("config"); >> >> Thanks, >> -Stolee >> >>