From: Tian Yuchen <cat@malon.dev>
To: git@vger.kernel.org
Cc: christian.couder@gmail.com, ps@pks.im,
Tian Yuchen <cat@malon.dev>,
Ayush Chandekar <ayu.chandekar@gmail.com>,
Olamide Caleb Bello <belkid98@gmail.com>
Subject: [PATCH v1 0/4] environment.c: migrate 'trust_executable_bit' into 'repo_config_values'
Date: Sun, 31 May 2026 00:05:15 +0800 [thread overview]
Message-ID: <20260530160520.77859-1-cat@malon.dev> (raw)
The 'core.filemode' configuration, which is stored as a global
variable 'trust_executable_bit', is a core filesystem capability flag.
Move it into 'repo_config_values' to tie it to the specific
repository instance it was read from. Eager parsing is maintained
because this flag is heavily consulted in hot paths.
To avoid falling back to 'the_repository', refactor the signatures
of helper functions:
- ce_mode_from_stat()
- st_mode_from_ce()
- fake_lstat()
- check_removed()
These functions now accept a 'struct index_state *istate', ensuring
the correct context is seamlessly passed down to the lowest levels.
Note: 'repo_config_values()' still does not support any 'struct
repository' other than 'the_repository'. In other words, this series
of patches is laying the groundwork for the eventual elimination of
'the_repository'.
Previous related work:
- [PATCH 2/6] config: add trust_executable_bit to global config
- [PATCH] Refactor 'trust_executable_bit' to repository-scoped setting
(This series of patches was unsuccessful because the target location selected
was 'struct repo_settings', which our analysis indicated was not the
optimal choice. For further details, please see: [1])
[1] https://lore.kernel.org/git/837b5360b40f992351f489a0ae05fedf49884c6e.1685716420.git.gitgitgadget@gmail.com/
[2] https://lore.kernel.org/git/20260301190017.53539-1-dronarajgyawali@gmail.com/
[3] https://lore.kernel.org/git/xmqq1pht6nyx.fsf@gitster.g/
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Ayush Chandekar <ayu.chandekar@gmail.com>
Mentored-by: Olamide Caleb Bello <belkid98@gmail.com>
Signed-off-by: Tian Yuchen <cat@malon.dev>
Tian Yuchen (4):
read-cache: remove redundant extern declarations
read-cache: move 'ce_mode_from_stat()' to 'read-cache.c'
environment: move 'trust_executable_bit' into repo_config_values
read-cache: pass 'istate' to stat/mode helper functions
apply.c | 6 ++++--
builtin/update-index.c | 2 +-
diff-lib.c | 20 +++++++++---------
environment.c | 4 ++--
environment.h | 2 +-
read-cache-ll.h | 2 +-
read-cache.c | 47 ++++++++++++++++++++++++++++++++----------
read-cache.h | 17 +++------------
8 files changed, 58 insertions(+), 42 deletions(-)
--
2.43.0
next reply other threads:[~2026-05-30 16:06 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-30 16:05 Tian Yuchen [this message]
2026-05-30 16:05 ` [PATCH v1 1/4] read-cache: remove redundant extern declarations Tian Yuchen
2026-05-30 16:05 ` [PATCH v1 2/4] read-cache: move 'ce_mode_from_stat()' to 'read-cache.c' Tian Yuchen
2026-06-04 6:47 ` Patrick Steinhardt
2026-05-30 16:05 ` [PATCH v1 3/4] environment: move 'trust_executable_bit' into repo_config_values Tian Yuchen
2026-05-30 18:02 ` Christian Couder
2026-05-30 23:17 ` Junio C Hamano
2026-06-01 10:10 ` Tian Yuchen
2026-06-01 18:03 ` Tian Yuchen
2026-05-30 16:05 ` [PATCH v1 4/4] read-cache: pass 'istate' to stat/mode helper functions Tian Yuchen
2026-05-30 18:14 ` Christian Couder
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=20260530160520.77859-1-cat@malon.dev \
--to=cat@malon.dev \
--cc=ayu.chandekar@gmail.com \
--cc=belkid98@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=ps@pks.im \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.