From: Phillip Wood <phillip.wood123@gmail.com>
To: Karthik Nayak <karthik.188@gmail.com>,
Olamide Caleb Bello <belkid98@gmail.com>,
git@vger.kernel.org
Cc: gitster@pobox.com, christian.couder@gmail.com,
usmanakinyemi202@gmail.com, kaartic.sivaraam@gmail.com,
me@ttaylorr.com
Subject: Re: [PATCH v2 1/8] environment: move "trust_ctime" into `struct repo_config_values`
Date: Tue, 14 Apr 2026 10:35:50 +0100 [thread overview]
Message-ID: <53f43b85-b274-4352-938b-d40f942bfb2d@gmail.com> (raw)
In-Reply-To: <CAOLa=ZTD+qqgyB4Pn4bcOfP+Ks8Zch+AWZkzhrRRbk-eJvS-mg@mail.gmail.com>
On 14/04/2026 09:52, Karthik Nayak wrote:
> Olamide Caleb Bello <belkid98@gmail.com> writes:
>
>> The `core.trustctime` configuration is currently stored in the global
>> variable `trust_ctime`, which makes it shared across repository
>> instances in a single process.
>>
>> Store it instead in `repo_config_values`, so the value is tied to the
>> repository from which it was read. This preserves existing behavior
>> while avoiding cross-repository state leakage and continues the effort
>> to reduce reliance on global configuration state.
>>
>> Update all references to use repo_config_values().
>>
>
> Nit: I was hoping you'd also shed light on why this can go into
> `repo_config_values()`. Does it need to be eagerly parsed? If so, why?
If trust_ctime was lazily parsed where it is used we'd end up dying in
match_stat_data() which would be quite unexpected, make it very hard to
reason about the code, and hamper the libification efforts. I'd much
rather we put the onus on patch authors to justify any conversion from
eager parsing to lazy parsing rather than forcing them to justify
continuing to parse settings eagerly.
Thanks
Phillip
>> Mentored-by: Christian Couder <christian.couder@gmail.com>
>> Mentored-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
>> Signed-off-by: Olamide Caleb Bello <belkid98@gmail.com>
>> ---
>> environment.c | 4 ++--
>> environment.h | 2 +-
>> statinfo.c | 6 ++++--
>> 3 files changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/environment.c b/environment.c
>> index fc3ed8bb1c..0a9067729e 100644
>> --- a/environment.c
>> +++ b/environment.c
>> @@ -42,7 +42,6 @@ static int pack_compression_seen;
>> static int zlib_compression_seen;
>>
>> int trust_executable_bit = 1;
>> -int trust_ctime = 1;
>> int check_stat = 1;
>> int has_symlinks = 1;
>> int minimum_abbrev = 4, default_abbrev = -1;
>> @@ -309,7 +308,7 @@ int git_default_core_config(const char *var, const char *value,
>> return 0;
>> }
>> if (!strcmp(var, "core.trustctime")) {
>> - trust_ctime = git_config_bool(var, value);
>> + cfg->trust_ctime = git_config_bool(var, value);
>> return 0;
>> }
>> if (!strcmp(var, "core.checkstat")) {
>> @@ -721,4 +720,5 @@ void repo_config_values_init(struct repo_config_values *cfg)
>> cfg->attributes_file = NULL;
>> cfg->apply_sparse_checkout = 0;
>> cfg->branch_track = BRANCH_TRACK_REMOTE;
>> + cfg->trust_ctime = 1;
>> }
>> diff --git a/environment.h b/environment.h
>> index 123a71cdc8..64d537686e 100644
>> --- a/environment.h
>> +++ b/environment.h
>> @@ -91,6 +91,7 @@ struct repo_config_values {
>> /* section "core" config values */
>> char *attributes_file;
>> int apply_sparse_checkout;
>> + int trust_ctime;
>>
>
> Since we parse it as a bool, perhaps we can make the variable to be of
> type bool?
>
> [snip]
next prev parent reply other threads:[~2026-04-14 9:35 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-24 12:37 [PATCH v2 0/8] repo_config_values: migrate more globals Olamide Caleb Bello
2026-03-24 12:37 ` [PATCH v2 1/8] environment: move "trust_ctime" into `struct repo_config_values` Olamide Caleb Bello
2026-04-14 8:52 ` Karthik Nayak
2026-04-14 9:35 ` Phillip Wood [this message]
2026-04-14 17:15 ` Junio C Hamano
2026-04-15 11:16 ` Karthik Nayak
2026-04-15 15:49 ` Junio C Hamano
2026-04-15 19:09 ` Karthik Nayak
2026-03-24 12:37 ` [PATCH v2 2/8] environment: move "check_stat" " Olamide Caleb Bello
2026-04-14 8:55 ` Karthik Nayak
2026-03-24 12:37 ` [PATCH v2 3/8] environment: move `zlib_compression_level` into repo_config_values Olamide Caleb Bello
2026-04-14 8:58 ` Karthik Nayak
2026-04-14 14:32 ` Bello Olamide
2026-03-24 12:37 ` [PATCH v2 4/8] environment: move "pack_compression_level" into `struct repo_config_values` Olamide Caleb Bello
2026-03-24 12:37 ` [PATCH v2 5/8] environment: move "precomposed_unicode" " Olamide Caleb Bello
2026-04-14 9:07 ` Karthik Nayak
2026-03-24 12:37 ` [PATCH v2 6/8] env: move "core_sparse_checkout_cone" " Olamide Caleb Bello
2026-03-24 12:37 ` [PATCH v2 7/8] env: put "sparse_expect_files_outside_of_patterns" in `repo_config_values` Olamide Caleb Bello
2026-03-24 12:37 ` [PATCH v2 8/8] env: move "warn_on_object_refname_ambiguity" into `repo_config_values` Olamide Caleb Bello
2026-04-14 9:10 ` [PATCH v2 0/8] repo_config_values: migrate more globals Karthik Nayak
2026-04-14 14:26 ` Bello Olamide
2026-04-23 16:08 ` [PATCH v3 " Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 1/8] Revert "compat/posix: introduce writev(3p) wrapper" Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 2/8] rust: we are way beyond 2.53 Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 3/8] doc: am: revert Message-ID trailer claim Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 4/8] doc: am: correct to full --no-message-id Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 5/8] CI: bump actions/checkout from 4 to 5 for rust-analysis job Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 6/8] gitglossary: fix indentation of sub-lists Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 7/8] Hopefully the final tweak before -rc2 Olamide Caleb Bello
2026-04-23 16:08 ` [PATCH v3 8/8] Git 2.54-rc2 Olamide Caleb Bello
2026-04-23 16:37 ` [PATCH v3 0/8] repo_config_values: migrate more globals Bello Olamide
2026-04-23 16:54 ` [PATCH v3 0/8] environment: move core config globals into repo_config_values Olamide Caleb Bello
2026-04-23 16:54 ` [PATCH v3 1/8] environment: move "trust_ctime" into `struct repo_config_values` Olamide Caleb Bello
2026-04-23 16:54 ` [PATCH v3 2/8] environment: move "check_stat" " Olamide Caleb Bello
2026-04-23 16:54 ` [PATCH v3 3/8] environment: move `zlib_compression_level` " Olamide Caleb Bello
2026-04-23 16:54 ` [PATCH v3 4/8] environment: move "pack_compression_level" " Olamide Caleb Bello
2026-04-23 16:54 ` [PATCH v3 5/8] environment: move "precomposed_unicode" " Olamide Caleb Bello
2026-05-15 17:15 ` Tian Yuchen
2026-04-23 16:54 ` [PATCH v3 6/8] env: move "core_sparse_checkout_cone" " Olamide Caleb Bello
2026-04-23 16:54 ` [PATCH v3 7/8] env: move "sparse_expect_files_outside_of_patterns" into `repo_config_values` Olamide Caleb Bello
2026-04-23 16:54 ` [PATCH v3 8/8] env: move "warn_on_object_refname_ambiguity" into `struct repo_config_values` Olamide Caleb Bello
2026-04-26 0:01 ` [PATCH v3 0/8] environment: move core config globals into repo_config_values Junio C Hamano
2026-04-26 0:31 ` Bello Olamide
2026-05-11 2:56 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53f43b85-b274-4352-938b-d40f942bfb2d@gmail.com \
--to=phillip.wood123@gmail.com \
--cc=belkid98@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=kaartic.sivaraam@gmail.com \
--cc=karthik.188@gmail.com \
--cc=me@ttaylorr.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=usmanakinyemi202@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox