Subject: Re: [PATCH] git-init: don't base core.filemode on the ability to chmod.

From: Johannes Sixt <[email-masked]>
Date: Thu, 04 Oct 2007 10:36:15 +0200

Junio C Hamano schrieb:
> Martin Waitz <[email-masked]> writes:
>> On Wed, Oct 03, 2007 at 11:23:22PM -0700, Junio C Hamano wrote:
>>> filemode = !( (st1.st_mode & S_IXUSR)
>>>         	/* we did not ask for x-bit -- bogus FS */
>>> 	    || chmod(path, st1.st_mode & S_IXUSR)
>>>         	/* it does not let us flip x-bit -- bogus FS */
>>> 	    || lstat(path, &st2)
>>>         	/* it does not let us read back -- bogus FS */
>>> 	    || (st1.st_mode == st2.st_mode)
>>> 	        /* it forgets we flipped -- bogus FS */
>>> 	    );
>> that looks good.
> 
> I do not think git on Cygwin nor WinGit creates $GIT_DIR/config
> with executable bit set.  Is this pretty much a workaround only
> for vfat-on-Linux ?

I think so. Here on Windows, 'ls -l' after 'git init' tells that .git/config 
is not executable (both FAT and NTFS). But, anyway, as far as the MinGW port 
is concerned, at least the last condition in the sequence above triggers and 
causes filemode=false, which is good.

-- Hannes