Re: [PATCH v7 2/4] read-cache: pass 'repo' to 'ce_mode_from_stat()'
From: Tian Yuchen <hidden>
Date: 2026-07-20 10:12:41
On 7/20/26 17:52, SZEDER Gábor wrote:
On Mon, Jul 20, 2026 at 05:13:17PM +0800, Tian Yuchen wrote:quoted
On 7/19/26 03:02, SZEDER Gábor wrote:quoted
On Fri, Jul 17, 2026 at 02:35:57PM +0800, Tian Yuchen wrote:quoted
diff --git a/read-cache.h b/read-cache.h index 043da1f1aa..94b8d3e547 100644 --- a/read-cache.h +++ b/read-cache.h@@ -4,15 +4,24 @@ #include "read-cache-ll.h" #include "object.h" #include "pathspec.h" +#include "environment.h" -static inline unsigned int ce_mode_from_stat(const struct cache_entry *ce, +/* + * Determine the appropriate index mode for a file based on its stat() + * information and the existing cache entry (if any). + * + * This function handles degradation for filesystems that lack + * symlink support or reliable executable bits. + */ +static inline unsigned int ce_mode_from_stat(struct repository *repo,This new parameter is not yet used in this function, which causes compilation errors in all source files which include "read-cache.h" when trying to build this commit using DEVELOPER=1, e.g.:quoted
quoted
I think the new parameter should be marked as UNUSED in this patch, and then the UNUSED should be dropped in the next, where you start using the parameter.quoted
+ const struct cache_entry *ce, unsigned int mode) { extern int trust_executable_bit, has_symlinks; - if (!has_symlinks && S_ISREG(mode) && + if (S_ISREG(mode) && !has_symlinks && ce && S_ISLNK(ce->ce_mode)) return ce->ce_mode; - if (!trust_executable_bit && S_ISREG(mode)) { + if (S_ISREG(mode) && !trust_executable_bit) { if (ce && S_ISREG(ce->ce_mode)) return ce->ce_mode; return create_ce_mode(0666); -- 2.43.0But 'USUSED' cannot be used here since the corresponding header (git-compat-util.h, or more specifically compat/posix.h) is not included.UNUSED _can_ be used here, because: - This is a header file, so it's not supposed to be compiled on its own. - All C source files including this header file must start with including "git-compat-util.h", so by the time they include "read-cache.h", the UNUSED macro is already defined.
I see. Thanks, yuchen