Browse Source
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 <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint


7 changed files with 58 additions and 19 deletions
@ -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; |
||||||
|
} |
Loading…
Reference in new issue