environment: stop storing "core.warnAmbiguousRefs" globally
Same as the preceding commits, storing the "core.warnAmbiguousRefs" value globally is misdesigned as this setting may be set per repository. Move the logic into the repo-settings subsystem. The usual pattern here is that users are expected to call `prepare_repo_settings()` before they access the settings themselves. This seems somewhat fragile though, as it is easy to miss and leads to somewhat ugly code patterns at the call sites. Instead, introduce a new function that encapsulates this logic for us. This also allows us to change how exactly the lazy initialization works in the future, e.g. by only partially initializing values as requested by the caller. 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
8e2e8a33f3
commit
11dbb4ace3
@@ -56,16 +56,20 @@ struct repo_settings {
|
||||
enum fetch_negotiation_setting fetch_negotiation_algorithm;
|
||||
|
||||
int core_multi_pack_index;
|
||||
int warn_ambiguous_refs; /* lazily loaded via accessor */
|
||||
};
|
||||
#define REPO_SETTINGS_INIT { \
|
||||
.index_version = -1, \
|
||||
.core_untracked_cache = UNTRACKED_CACHE_KEEP, \
|
||||
.fetch_negotiation_algorithm = FETCH_NEGOTIATION_CONSECUTIVE, \
|
||||
.warn_ambiguous_refs = -1, \
|
||||
}
|
||||
|
||||
void prepare_repo_settings(struct repository *r);
|
||||
|
||||
/* Read the value for "core.logAllRefUpdates". */
|
||||
enum log_refs_config repo_settings_get_log_all_ref_updates(struct repository *repo);
|
||||
/* Read the value for "core.warnAmbiguousRefs". */
|
||||
int repo_settings_get_warn_ambiguous_refs(struct repository *repo);
|
||||
|
||||
#endif /* REPO_SETTINGS_H */
|
||||
|
||||
Reference in New Issue
Block a user