]> Kevux Git Server - rit/commit
environment: move "warn_on_object_refname_ambiguity" into `struct repo_config_values`
authorOlamide Caleb Bello <belkid98@gmail.com>
Tue, 2 Jun 2026 17:09:21 +0000 (18:09 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 2 Jun 2026 23:36:48 +0000 (08:36 +0900)
commit8407abf02aa310f4b8c21e0c9da925f8091564ff
tree4a602308e3c7c3c7d4c055630f90034781091421
parentc8a32140a7d76565a6d14e8d068e2a9b1562ac95
environment: move "warn_on_object_refname_ambiguity" into `struct repo_config_values`

The `core.warnAmbiguousRefs` configuration was previously stored in a
global `int` variable, making it shared across repository instances
and risking cross‑repository state leakage.

Store it instead in `repo_config_values`, where eagerly‑parsed
repository configuration lives. This option is parsed eagerly because
ambiguity warnings influence how users interpret object references in
many commands; a lazy parse could cause these warnings to behave
inconsistently or to appear for the wrong repository, confusing users
and hindering libification. This preserves the existing behavior while
tying the value to the repository from which it was read, avoiding
cross‑repository state leakage and continuing the effort to reduce
reliance on global configuration state.

Update all references to use `repo_config_values()`.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
Signed-off-by: Olamide Caleb Bello <belkid98@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/cat-file.c
builtin/pack-objects.c
environment.c
environment.h
object-name.c
revision.c
submodule.c