]> git.ipfire.org Git - thirdparty/git.git/commit
environment: stop storing "core.logAllRefUpdates" globally
authorPatrick Steinhardt <ps@pks.im>
Thu, 12 Sep 2024 11:30:18 +0000 (13:30 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Sep 2024 17:15:43 +0000 (10:15 -0700)
commiteafb126456b235c5281e3ae50bfd526552ce12d3
tree24fc4c55c9306970a9336196ba3a32d0cc9e1cea
parent9a20b889e8703482162d9d1487b876be42564a78
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>
builtin/checkout.c
config.c
environment.c
environment.h
refs/files-backend.c
refs/reftable-backend.c
repo-settings.c
repo-settings.h
setup.c