mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
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>
This commit is contained in:
parent
a0d09c56ba
commit
f1d3d07900
@ -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);
|
||||
|
@ -50,6 +50,11 @@ struct repo_settings {
|
||||
|
||||
int core_multi_pack_index;
|
||||
};
|
||||
#define REPO_SETTINGS_INIT { \
|
||||
.index_version = -1, \
|
||||
.core_untracked_cache = UNTRACKED_CACHE_KEEP, \
|
||||
.fetch_negotiation_algorithm = FETCH_NEGOTIATION_CONSECUTIVE, \
|
||||
}
|
||||
|
||||
void prepare_repo_settings(struct repository *r);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user