aboutsummaryrefslogtreecommitdiffstats
path: root/repo-settings.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-09-12 13:30:07 +0200
committerJunio C Hamano <gitster@pobox.com>2024-09-12 10:15:42 -0700
commitf1d3d07900e42d19f10be55bc2f793034e7d4198 (patch)
treec2b4467cc1ab5b24dc4aa8db337d69c9827e1199 /repo-settings.c
parentrepo-settings: split out declarations into a standalone header (diff)
downloadgit-f1d3d07900e42d19f10be55bc2f793034e7d4198.tar.gz
git-f1d3d07900e42d19f10be55bc2f793034e7d4198.zip
repo-settings: track defaults close to `struct repo_settings`
The default values for `struct repo_settings` are set up in `prepare_repo_settings()`. This is somewhat different from how we typically do this, namely by providing an `INIT` macro that sets up the default values for us. Refactor the code to do the same. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'repo-settings.c')
-rw-r--r--repo-settings.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/repo-settings.c b/repo-settings.c
index 6165546e80..3a76ba276c 100644
--- a/repo-settings.c
+++ b/repo-settings.c
@@ -20,6 +20,7 @@ static void repo_cfg_int(struct repository *r, const char *key, int *dest,
void prepare_repo_settings(struct repository *r)
{
+ const struct repo_settings defaults = REPO_SETTINGS_INIT;
int experimental;
int value;
const char *strval;
@@ -29,13 +30,11 @@ void prepare_repo_settings(struct repository *r)
if (!r->gitdir)
BUG("Cannot add settings for uninitialized repository");
- if (r->settings.initialized++)
+ if (r->settings.initialized)
return;
- /* Defaults */
- r->settings.index_version = -1;
- r->settings.core_untracked_cache = UNTRACKED_CACHE_KEEP;
- r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_CONSECUTIVE;
+ memcpy(&r->settings, &defaults, sizeof(defaults));
+ r->settings.initialized++;
/* Booleans config or default, cascades to other settings */
repo_cfg_bool(r, "feature.manyfiles", &manyfiles, 0);