Subject: Re: ignoring file modes completely

From: Rafael Kitover <[email-masked]>
Date: Sun, 06 Feb 2011 11:14:30 -0500

On 2/6/2011 10:53 AM, Rafael Kitover wrote:
> On 2/6/2011 8:14 AM, Michael J Gruber wrote:
>> Rafael Kitover venit, vidit, dixit 05.02.2011 20:28:
>>> On 2/5/2011 11:58 AM, Andreas Ericsson wrote:
>>>> On 02/05/2011 05:09 PM, Rafael Kitover wrote:
>>>>> On 2/5/2011 11:03 AM, Jared Hance wrote:
>>>>>> On Sat, 2011-02-05 at 10:24 -0500, Rafael Kitover wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> I found the core.filemode option, which ignores executable bits,
>>>>>>> but I
>>>>>>> need an option to ignore all mode differences, and such an option
>>>>>>> does
>>>>>>> not seem to exist.
>>>>>>
>>>>>> The only mode tracked by Git is the executable bit, so this shouldn't
>>>>>> even be an issue. Are you sure the executable bit isn't the problem?
>>>>>>
>>>>> $ git config --global core.filemode
>>>>> false
>>>>>
>>>>> Output of "git diff HEAD" :
>>>>>
>>>>> diff --git a/Makefile.PL b/Makefile.PL
>>>>> old mode 100755
>>>>> new mode 100644
>>>>> diff --git a/t/02ads.t b/t/02ads.t
>>>>> old mode 100755
>>>>> new mode 100644
>>>>> diff --git a/t/02cxn.t b/t/02cxn.t
>>>>> old mode 100755
>>>>> new mode 100644
>>>>> diff --git a/t/04os.t b/t/04os.t
>>>>> old mode 100755
>>>>> new mode 100644
>>>>
>>>> Those are all executable bit diffs.
>>>>
>>>
>>> Ok, but I have core.filemode set to "false" as I showed, why does this
>>> happen then?
>>
>> I can't confirm this on linux with current git. What are your versions?
>> Do you have a minimal example (starting from git init)?
>
> This is msysGit:
>
> $ git --version
> git version 1.7.3.1
>
> I can't replicate this with just "git init" and a file, it seems to
> happen when I use "git cpan-init" in Cygwin then look at the repo in
> msysGit.

Actually, I can replicate this in Cygwin git:

$ git --version
git version 1.7.3.3

$ cd ~/src
$ mkdir test-repo
$ cd test-repo
$ git init
$ touch README
$ git add README
$ git commit -a -m'test commit'
$ git diff HEAD
$ chmod +x README
$ git diff HEAD
diff --git a/README b/README
old mode 100644
new mode 100755
$ git config --global core.filemode
false

The way the executable bit works seems to be different between Cygwin 
and msys, but in either case core.filemode seems to not be working properly.