Subject: [PATCH v3 0/8] environment: move core config globals into repo_config_values

From: Olamide Caleb Bello <[email-masked]>
Date: Thu, 23 Apr 2026 17:54:24 +0100

This series continues the effort to remove repository-dependent global
configuration state by moving several core.* configuration variables
into struct repo_config_values.

This ensures configuration values are tied to the repository from which
they were read, avoiding cross-repository state leakage in processes
handling multiple repositories, while preserving existing behavior.

All affected configuration values are eagerly parsed. Storing them in
repo_config_values preserves current semantics and avoids introducing
lazy parsing into runtime code paths.

This v3 addresses review feedback by explicitly clarifying the reason
these values belong in repo_config_values (eager parsing) and improving
commit message clarity.

Olamide Caleb Bello (8):
  environment: move "trust_ctime" into `struct repo_config_values`
  environment: move "check_stat" into `struct repo_config_values`
  environment: move `zlib_compression_level` into `struct
    repo_config_values`
  environment: move "pack_compression_level" into `struct
    repo_config_values`
  environment: move "precomposed_unicode" into `struct
    repo_config_values`
  env: move "core_sparse_checkout_cone" into `struct repo_config_values`
  env: move "sparse_expect_files_outside_of_patterns" into
    `repo_config_values`
  env: move "warn_on_object_refname_ambiguity" into `struct
    repo_config_values`

 builtin/cat-file.c        |  7 ++++---
 builtin/fast-import.c     |  8 +++++---
 builtin/index-pack.c      |  3 ++-
 builtin/mv.c              |  2 +-
 builtin/pack-objects.c    | 24 +++++++++++++----------
 builtin/sparse-checkout.c | 37 +++++++++++++++++++++---------------
 compat/precompose_utf8.c  | 20 +++++++++++++-------
 diff.c                    |  3 ++-
 dir.c                     |  3 ++-
 entry.c                   |  3 ++-
 environment.c             | 40 +++++++++++++++++++++------------------
 environment.h             | 19 ++++++++++---------
 http-push.c               |  3 ++-
 object-file.c             |  6 ++++--
 object-name.c             |  3 ++-
 revision.c                |  7 ++++---
 sparse-index.c            |  4 ++--
 statinfo.c                | 12 +++++++-----
 submodule.c               |  7 ++++---
 upload-pack.c             |  3 ++-
 20 files changed, 126 insertions(+), 88 deletions(-)

-- 
2.53.0.155.g9f36b15afa