![Derrick Stolee](/assets/img/avatar_default.png)
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>
26 lines
634 B
C
26 lines
634 B
C
#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;
|
|
}
|