git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC GSoC PATCH] environment: move core.trustctime to repo_settings

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 17, 2026, 19:13 UTC
Message-ID
<xmqqpl63b2tm.fsf@gitster.g>
In-Reply-To
<20260215112331.22-1-kumarayushjha123@gmail.com>
Ayush Jha <kumarayushjha123@gmail.com> writes:
Show 20 quoted lines
> The core.trustctime configuration variable is currently stored as a global in environment.c. This prevents it from being repository-specific, which is problematic when multiple repository instances are used within the same process.
>
> This change continues the effort to move global configuration into struct repo_settings, as discussed in
> <20260208062949.596-1-kumarayushjha123@gmail.com>.
>
> Move trust_ctime into struct repo_settings so that it is associated with a repository instance.
>
> Add repo_settings_get_trust_ctime() to lazily read the
> core.trustctime configuration value, defaulting to true.
>
> Update statinfo.c to use the new accessor instead of the global variable.
>
> Signed-off-by: Ayush Jha <kumarayushjha123@gmail.com>
> ---
>  environment.c   | 5 -----
>  environment.h   | 1 -
>  repo-settings.c | 7 +++++++
>  repo-settings.h | 8 ++++++++
>  statinfo.c      | 4 ++--
>  5 files changed, 17 insertions(+), 8 deletions(-)

Doesn't this regress end-user experience when the configuration variable is misspelled, e.g. "[core] trustctime = bad"? We used to run git_config_bool() from git_config(git_default_condfig) fairly early in the program, and would have died before doing anythihng to give the user a chance to fix the configuration files before going forward.

Now we will run deep into codepath and would not notice the misconfigured core.trustctime until the code happens to ask to compare the filesystem stat data and in-core index stat data.

I think this is a recurring theme, e.g.

https://lore.kernel.org/git/32fceddc-c867-4a47-bde8-c873279edbc1@gmail.com/ https://lore.kernel.org/git/a881499d-e236-4f8e-a217-b6bce69e3e3c@gmail.com/

That other topic Olamide has been working on seems to have settled *not* to lazily load into repo_settings to avoid the problem. Instead it reads and parses at the same places in the code path as before, but into a repo_config_values structure that is associated with the repository in question (which typically is the_repository).

Previous: Ayush JhaNext: Ayush Jha
Message 2 of 5 in “environment: move core.trustctime to repo_settings”
  1. environment: move core.trustctime to repo_settingsAyush Jha, Feb 15, 2026
  2. Junio C HamanoFeb 17, 2026
  3. Ayush JhaFeb 18, 2026
  4. Bello OlamideFeb 18, 2026
  5. Ayush JhaFeb 18, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.