From: Junio C Hamano <gitster@pobox.com>
To: Mark Levedahl <mlevedahl@gmail.com>
Cc: spearce@spearce.org, dpotapov@gmail.com, git@vger.kernel.org
Subject: Re: [PATCH] compat/cygwin.c - Use cygwin's stat if core.filemode == true
Date: Sun, 12 Oct 2008 16:39:13 -0700 [thread overview]
Message-ID: <7vd4i5fkny.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: 48F25CB6.10702@gmail.com
Mark Levedahl <mlevedahl@gmail.com> writes:
> Junio C Hamano wrote:
>
>> Before you do that, can you explain why git_cygwin_config() should
>> duplicate the setting of that variable instead of using the existing
>> parser for that variable by calling git_default_config()?
>
> I don't like traversing the same list of configuration variables /
> files twice, each time looking for a different variable just so that
> one of those traversals can use a standard function, rather than just
> traversing once and getting exactly what this routine needs; this
> seems wasteful to me. However, I am (obviously) not the maintainer of
> this code so I will do this however it is desired.
I am not sure what you meant by "traversing twice"; when the first call to
stat or lstat is made, you call init_stat() and read the config file,
feeding each and every variable definition to the callback functions. And
then whenever the command implementations call git_config() to getting the
configuration necessary for their own use, they read the config, again
feeding each and every variable definition to the callback functions.
This is "traversing twice" which is unfortunate, but that is not something
you can control from this codepath.
But in any case, I was worried about something different.
If you call git_default_config() as a fallback from git_cygwin_config(),
which is what all the other standard configuration callback functions do,
and/or set trust_executable_bit, command implementations that do not call
git_default_config() on their own would see different trust_executable_bit
value when running on non-Cygwin platform and on Cygwin.
I was wondering if git_cygwin_config() was originally written not to call
git_default_config() because some command implementations do not to want
to call git_default_core_config() (and/or read trust_executable_bit
variable from the configuration) for some reason (which would be just
hiding bugs in other parts of the system, I suspect).
If that is the case, we would have to fix such broken parts of the system,
but until that happens your original patch to use a separate variable and
keeping trust_executable_bit untouched would be much safer than this
latest patch. Hence the question.
next prev parent reply other threads:[~2008-10-12 23:40 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-11 18:54 [PATCH] compat/cygwin.c - Use cygwin's stat if core.filemode == true Mark Levedahl
2008-10-11 19:04 ` Mark Levedahl
2008-10-11 21:34 ` Junio C Hamano
2008-10-11 22:56 ` Mark Levedahl
2008-10-12 13:39 ` Dmitry Potapov
2008-10-12 18:44 ` Mark Levedahl
2008-10-12 19:35 ` Junio C Hamano
2008-10-12 20:23 ` Mark Levedahl
2008-10-12 23:39 ` Junio C Hamano [this message]
2008-10-13 4:31 ` Mark Levedahl
2008-10-13 4:33 ` Mark Levedahl
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=7vd4i5fkny.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=mlevedahl@gmail.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.