Re: [PATCH] add GIT_FAST_STAT mode for Cygwin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux