From 7211b9e7534e021d7c46117ec0c64482e7930560 Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Tue, 13 Aug 2019 11:37:43 -0700 Subject: repo-settings: consolidate some config settings There are a few important config settings that are not loaded during git_default_config. These are instead loaded on-demand. Centralize these config options to a single scan, and store all of the values in a repo_settings struct. The values for each setting are initialized as negative to indicate "unset". This centralization will be particularly important in a later change to introduce "meta" config settings that change the defaults for these config settings. Signed-off-by: Derrick Stolee Signed-off-by: Junio C Hamano --- repo-settings.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 repo-settings.c (limited to 'repo-settings.c') diff --git a/repo-settings.c b/repo-settings.c new file mode 100644 index 0000000000..309577f6bc --- /dev/null +++ b/repo-settings.c @@ -0,0 +1,25 @@ +#include "cache.h" +#include "config.h" +#include "repository.h" + +void prepare_repo_settings(struct repository *r) +{ + int value; + + if (r->settings.initialized) + return; + + /* Defaults */ + memset(&r->settings, -1, sizeof(r->settings)); + + if (!repo_config_get_bool(r, "core.commitgraph", &value)) + r->settings.core_commit_graph = value; + if (!repo_config_get_bool(r, "gc.writecommitgraph", &value)) + r->settings.gc_write_commit_graph = value; + + if (!repo_config_get_bool(r, "index.version", &value)) + r->settings.index_version = value; + + if (!repo_config_get_bool(r, "pack.usesparse", &value)) + r->settings.pack_use_sparse = value; +} -- cgit v1.2.3