All of lore.kernel.org
 help / color / mirror / Atom feed
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: Sat, 11 Oct 2008 14:34:50 -0700	[thread overview]
Message-ID: <7v1vymke85.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <1223751859-3540-1-git-send-email-mlevedahl@gmail.com> (Mark Levedahl's message of "Sat, 11 Oct 2008 15:04:19 -0400")

Mark Levedahl <mlevedahl@gmail.com> writes:

> Cygwin's POSIX emulation allows use of core.filemode true, unlike native
> Window's implementation of stat / lstat, and Cygwin/git users who have
> configured core.filemode true in various repositories will be very
> unpleasantly surprised to find that git is no longer honoring that option.
> So, this patch fores use of Cygwin's stat functions if core.filemode is

s/fores/forces/;

>  static int native_stat = 1;
> +static int core_filemode = 0;

Makes me wonder why "trust_executable_bit" is unavailable here.
Perhaps git_cygwin_config() does not fall back to git_default_config()
for a reason?

>  static int git_cygwin_config(const char *var, const char *value, void *cb)
>  {
> +	if (!strcmp(var, "core.filemode")) {
> +			core_filemode = git_config_bool(var, value);
> +			native_stat &= !core_filemode;
> +	}
>  	if (!strcmp(var, "core.ignorecygwinfstricks"))
> -		native_stat = git_config_bool(var, value);
> +		native_stat = git_config_bool(var, value) &&
> +			!core_filemode;
>  	return 0;
>  }

If you can safely determine if you would want to use cygwin_stat or not
only after you have read both core.filemode and core.ignorecygwinfstricks,
perhaps keeping the config reader as is (this includes not falling back to
git_default_config()) and instead doing:

	static int init_stat(void)
	{
		...
		git_config(git_sygwin_config, NULL);
		if (!core_filemode && native_stat) {
			cygwin_stat_fn = cygwin_stat;
			cygwin_lstat_fn = cygwin_lstat;
		} else {
			cygwin_stat_fn = stat;
			cygwin_lstat_fn = lstat;
		}
		...

is less yucky?

  reply	other threads:[~2008-10-11 21:36 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 [this message]
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
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=7v1vymke85.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.