From: Dmitry Potapov <dpotapov@gmail.com>
To: "Shawn O. Pearce" <spearce@spearce.org>
Cc: git@vger.kernel.org, Johannes Sixt <johannes.sixt@telecom.at>,
Junio C Hamano <gitster@pobox.com>,
Steffen Prohaska <prohaska@zib.de>
Subject: Re: [PATCH] add GIT_FAST_STAT mode for Cygwin
Date: Wed, 24 Sep 2008 00:04:56 +0400 [thread overview]
Message-ID: <20080923200456.GR21650@dpotapov.dyndns.org> (raw)
In-Reply-To: <20080923190637.GJ3669@spearce.org>
On Tue, Sep 23, 2008 at 12:06:37PM -0700, Shawn O. Pearce wrote:
>
> and then disable it on a per-repository basis if you and a specific
> repository which has this inner mount problem:
>
> git config core.cygwinnativestat false
>
> Which is a lot more powerful than an environment variable.
I already said that I completely agree that is a good idea even I don't
know the real need for having per-repository configuration in practice.
>
> > However, this option is Cygwin specific, so I am not sure where it
> > should be read. Should I place it in git_default_core_config like
> > this:
> >
> > #ifdef __CYGWIN__
> > if (!strcmp(var, "core.cygwinnativestat")) {
> > cygwin_native_stat = git_config_bool(var, value);
> > return 0;
> > }
> > #endif
>
> I would have the two initial stat functions swap themselves out with
> the default Cygin stat implementations, run a parse over the config
> to load that one bool, then install the proper implementations based
> upon its value. Hence all Cygwin code is kept inside of the Cygwin
> compat code, and no #ifdef is necessary
Do I understand you correctly that you propose to add the code like
this in compat/cygwin.c:
static int native_stat;
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;
}
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);
}
Dmitry
next prev parent reply other threads:[~2008-09-23 20:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-23 14:06 [PATCH] add GIT_FAST_STAT mode for Cygwin Dmitry Potapov
2008-09-23 14:37 ` Alex Riesen
2008-09-23 16:52 ` Dmitry Potapov
2008-09-23 17:51 ` Jakub Narebski
2008-09-24 11:25 ` Alex Riesen
2008-09-24 14:03 ` Dmitry Potapov
2008-09-24 14:42 ` Alex Riesen
2008-09-24 15:02 ` Shawn O. Pearce
2008-09-24 15:09 ` Alex Riesen
2008-09-24 15:16 ` Shawn O. Pearce
2008-09-24 15:32 ` Alex Riesen
2008-09-23 15:31 ` Shawn O. Pearce
2008-09-23 17:12 ` Dmitry Potapov
2008-09-23 19:06 ` Shawn O. Pearce
2008-09-23 20:04 ` Dmitry Potapov [this message]
2008-09-23 20:17 ` Shawn O. Pearce
2008-09-23 21:28 ` Dmitry Potapov
2008-09-23 21:58 ` Shawn O. Pearce
2008-09-23 19:03 ` Johannes Sixt
2008-09-23 19:48 ` Dmitry Potapov
2008-09-23 20:41 ` Johannes Sixt
2008-09-23 21:11 ` Dmitry Potapov
2008-09-27 7:02 ` [PATCH v2] Add a "fast stat" " Marcus Griep
2008-09-27 8:35 ` Alex Riesen
2008-09-27 10:39 ` Dmitry Potapov
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=20080923200456.GR21650@dpotapov.dyndns.org \
--to=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johannes.sixt@telecom.at \
--cc=prohaska@zib.de \
--cc=spearce@spearce.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).