]> Kevux Git Server - rit/commit
environment: stop storing `core.attributesFile` globally
authorOlamide Caleb Bello <belkid98@gmail.com>
Mon, 16 Feb 2026 16:38:25 +0000 (17:38 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Feb 2026 20:09:42 +0000 (12:09 -0800)
commitf9b3c1f731dd12144cd6d1e27787e99beb3a631f
tree6d283f6e28f37e5ab49aa35c8ca9fce369d3a146
parent68cb7f9e92a5d8e9824f5b52ac3d0a9d8f653dbe
environment: stop storing `core.attributesFile` globally

The `core.attributeFile` config value is parsed in
git_default_core_config(), loaded eagerly and stored in the global
variable `git_attributes_file`. Storing this value in a global
variable can lead to it being overwritten by another repository when
more than one Git repository run in the same Git process.

Create a new struct `repo_config_values` to hold this value and
other repository dependent values parsed by `git_default_config()`.
This will ensure the current behaviour remains the same while also
enabling the libification of Git.

An accessor function 'repo_config_values()' s created to ensure
that we do not access an uninitialized repository, or an instance
of a different repository than the current one.

Suggested-by: Phillip Wood <phillip.wood123@gmail.com>
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Olamide Caleb Bello <belkid98@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
attr.c
environment.c
environment.h
oss-fuzz/fuzz-commit-graph.c
repository.c
repository.h