Dmitry Potapov <dpotapov@xxxxxxxxx> wrote: > Do I understand you correctly that you propose to add the code like > this in compat/cygwin.c: Yes. But with minor changes (see below): > static int native_stat; static int native_stat = -1; > static int git_cygwin_config(const char *var, const char *value, void > *cb) > { > if (!strcmp(var, "core.cygwinnativestat")) > cygwin_native_stat = git_config_bool(var, value); > return 0; > } > > static void init_stat(void) > { > git_config(git_cygwin_config, NULL); > cygwin_stat_fn = native_stat ? cygwin_stat : stat; > cygwin_lstat_fn = native_stat ? cygwin_lstat : lstat; if (native_stat < 0 && have_git_dir()) { native_stat = 0; git_config(git_cygwin_config, NULL); cygwin_stat_fn = native_stat ? cygwin_stat : stat; cygwin_lstat_fn = native_stat ? cygwin_lstat : lstat; } and then you have to define have_git_dir() inside environment.c as: int have_git_dir(void) { return !!git_dir; } > static int cygwin_stat_choice(const char *file_name, struct stat *buf) > { > init_stat(); > return (*cygwin_stat_fn)(file_name, buf); > } > > static int cygwin_lstat_choice(const char *file_name, struct stat *buf) > { > init_stat(); > return (*cygwin_lstat_fn)(file_name, buf); > } -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html