Thread (47 messages) flat view 47 messages, 6 authors, 2021-12-08

Re: [PATCH v5 4/7] repo-settings: prepare_repo_settings only in git repos

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2021-12-07 04:48:49

On Fri, Dec 03 2021, Lessley Dennington via GitGitGadget wrote:
quoted hunk ↗ jump to hunk
From: Lessley Dennington <redacted>

Check whether git directory exists before adding any repo settings. If it
does not exist, BUG with the message that one cannot add settings for an
uninitialized repository. If it does exist, proceed with adding repo
settings.

Signed-off-by: Lessley Dennington <redacted>
---
 repo-settings.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/repo-settings.c b/repo-settings.c
index b93e91a212e..00ca5571a1a 100644
--- a/repo-settings.c
+++ b/repo-settings.c
@@ -17,6 +17,9 @@ void prepare_repo_settings(struct repository *r)
 	char *strval;
 	int manyfiles;
 
+	if (!r->gitdir)
+		BUG("Cannot add settings for uninitialized repository");
nit: start BUG(), error() etc. messages with lower-case.
+
 	if (r->settings.initialized++)
 		return;
Our config doesn't require us to have a repo, and most of what
prepare_repo_settings() is doing is reading global config.

I think that *currently* this won't break things, but e.g. if we ever
want to have "feature.experimental" or whatever change the behavior of a
a command that doesn't require a repository we'd need to untangle this
(currently everything it changes requires a repo AFAICT).

Perhaps this is fine, and if we ever need such a "global config" point
we should stick it closer to common-main.c...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help