environment: stop storing "core.logAllRefUpdates" globally
The value of "core.logAllRefUpdates" is being stored in the global variable `log_all_ref_updates`. This design is somewhat aged nowadays, where it is entirely possible to access multiple repositories in the same process which all have different values for this setting. So using a single global variable to track it is plain wrong. Remove the global variable. Instead, we now provide a new function part of the repo-settings subsystem that parses the value for a specific repository. While that may require us to read the value multiple times, we work around this by reading it once when the ref backends are set up and caching the value there. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
9a20b889e8
commit
eafb126456
10
config.c
10
config.c
@ -1452,16 +1452,6 @@ static int git_default_core_config(const char *var, const char *value,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "core.logallrefupdates")) {
|
||||
if (value && !strcasecmp(value, "always"))
|
||||
log_all_ref_updates = LOG_REFS_ALWAYS;
|
||||
else if (git_config_bool(var, value))
|
||||
log_all_ref_updates = LOG_REFS_NORMAL;
|
||||
else
|
||||
log_all_ref_updates = LOG_REFS_NONE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "core.warnambiguousrefs")) {
|
||||
warn_ambiguous_refs = git_config_bool(var, value);
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user