[PATCH v8 0/4] environment: migrate 'trust_executable_bit' and 'has_symlinks' into 'repo_config_values'

Tian Yuchen <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
This series moves 'trust_executable_bit' and 'has_symlinks' into
'struct repo_config_values' to tie them to the specific repository
instance they were read from. Eager parsing is maintained because
these two flags are heavily consulted in hot paths.

Note: 'repo_config_values()' still does not support any struct
repository other than the_repository due to how deeply these flags
are accessed. 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 [1]
[PATCH] Refactor 'trust_executable_bit' to repository-scoped setting [2]
(This previous attempt 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: [3])

[PATCH 5/6] config: move has_symlinks [4]

RFC:

 - Is the locations of the newly introduced definitions/macros
 appropriate?

Changes since V7:

 - In commit 2/4, mark the 'struct repository' parameter of
 ce_mode_from_stat() UNUSED. In commit 3/4, drop it.

 - Don't check '!repo' in the getters, which lets the developers know
 there is a bug to fix when NULL is passed in. Callers should be
 responsible of passing non-null repos. Therefore, adjust the call in
 write_entry().

 Change back to check 'repo->initiaized' instead of 'repo->gitdir'.

Thanks!

[1] https://lore.kernel.org/git/837b5360b40f992351f489a0ae05fedf49884c6e.1685716420.git.gitgitgadget@gmail.com/
[2] https://lore.kernel.org/git/[email protected]/
[3] https://lore.kernel.org/git/[email protected]/
[4] https://lore.kernel.org/git/a154008619790f7a60f2bba91db7b0fe29e67e1a.1685716420.git.gitgitgadget@gmail.com/
[5] https://lore.kernel.org/git/[email protected]/

Tian Yuchen (4):
  read-cache: remove redundant extern declarations
  read-cache: pass 'repo' to 'ce_mode_from_stat()'
  environment: move trust_executable_bit into repo_config_values
  environment: move has_symlinks into repo_config_values

 apply.c                |  6 +++---
 builtin/update-index.c |  2 +-
 combine-diff.c         |  2 +-
 compat/mingw.c         | 17 +++++++++++++----
 compat/mingw.h         |  3 +++
 diff-lib.c             | 10 +++++-----
 entry.c                |  3 ++-
 environment.c          | 23 +++++++++++++++++++----
 environment.h          |  8 ++++++--
 git-compat-util.h      |  4 ++++
 read-cache.c           | 15 +++++++--------
 read-cache.h           | 16 ++++++++++++----
 12 files changed, 76 insertions(+), 33 deletions(-)

-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.