diff options
| author | Patrick Steinhardt <ps@pks.im> | 2024-09-12 13:30:07 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-09-12 10:15:42 -0700 |
| commit | f1d3d07900e42d19f10be55bc2f793034e7d4198 (patch) | |
| tree | c2b4467cc1ab5b24dc4aa8db337d69c9827e1199 /repo-settings.c | |
| parent | repo-settings: split out declarations into a standalone header (diff) | |
| download | git-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.c | 9 |
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); |
