Thread (40 messages) 40 messages, 3 authors, 13h ago

Re: [PATCH 02/13] setup: mark bogus worktree in `apply_repository_format()`

From: Patrick Steinhardt <hidden>
Date: 2026-07-07 06:25:41

On Mon, Jul 06, 2026 at 04:49:41PM -0500, Justin Tobler wrote:
On 26/06/30 01:47PM, Patrick Steinhardt wrote:
[snip]
quoted
Note that this change requires us to also explicitly unset the value of
"core.worktree" in case we have the "GIT_WORK_TREE" environment variable
set. This is because the environment variable overrides the repository's
configuration, and we don't want to warn or die in case the work tree
has been configured explicitly regardless of whether or not "core.bare"
is set.
Hmmm, does this mean we now just silently ignore the misconfiguration if
done via environment variable?
We do, but we also ignored those cases before. So the behaviour with and
without this change is (supposed) to be the exact same.
quoted
diff --git a/setup.c b/setup.c
index 118416e350..f54eac5e5a 100644
--- a/setup.c
+++ b/setup.c
@@ -1768,6 +1767,12 @@ int apply_repository_format(struct repository *repo,
 	if (verify_repository_format(format, err) < 0)
 		return -1;
 
+	if (format->is_bare > 0 && format->work_tree) {
+		/* #22.2, #30 */
+		warning("core.bare and core.worktree do not make sense");
+		repo->worktree_config_is_bogus = true;
+	}
We now perform this validation in `apply_repository_format()`. Does
deferring this check have any meaningful impact? Or is
`apply_repository_format()` always called after
`setup_explicit_git_dir()`?
No, it shouldn't have an impact on any user-visible behaviour. We always
call `apply_repository_format()` eventually, as that function is what
does the final setup of our repository.

Patrick
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help