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 <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
9c9b961d7e
commit
7211b9e753
11
read-cache.c
11
read-cache.c
@ -1599,16 +1599,17 @@ struct cache_entry *refresh_cache_entry(struct index_state *istate,
|
||||
|
||||
#define INDEX_FORMAT_DEFAULT 3
|
||||
|
||||
static unsigned int get_index_format_default(void)
|
||||
static unsigned int get_index_format_default(struct repository *r)
|
||||
{
|
||||
char *envversion = getenv("GIT_INDEX_VERSION");
|
||||
char *endp;
|
||||
int value;
|
||||
unsigned int version = INDEX_FORMAT_DEFAULT;
|
||||
|
||||
if (!envversion) {
|
||||
if (!git_config_get_int("index.version", &value))
|
||||
version = value;
|
||||
prepare_repo_settings(r);
|
||||
|
||||
if (r->settings.index_version >= 0)
|
||||
version = r->settings.index_version;
|
||||
if (version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) {
|
||||
warning(_("index.version set, but the value is invalid.\n"
|
||||
"Using version %i"), INDEX_FORMAT_DEFAULT);
|
||||
@ -2765,7 +2766,7 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
|
||||
}
|
||||
|
||||
if (!istate->version) {
|
||||
istate->version = get_index_format_default();
|
||||
istate->version = get_index_format_default(the_repository);
|
||||
if (git_env_bool("GIT_TEST_SPLIT_INDEX", 0))
|
||||
init_split_index(istate);
|
||||
}
|
||||
|
Reference in New Issue
Block a user