This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem with git and file mode changes


On 9/4/2015 11:12 AM, Adam Dinwoodie wrote:
On Fri, Sep 04, 2015 at 04:44:11PM +0200, Dani Moncayo wrote:
After doing a 'git pull', I saw that git didn't make the merge,
because apparently I had some local changes.  But I didn't make
any local change.  For example, this file appears as modified:

   $ git status --short test/rmailmm.el
    M test/rmailmm.el

   $ git diff test/rmailmm.el
   diff --git a/test/rmailmm.el b/test/rmailmm.el
   old mode 100644
   new mode 100755

Mmm strange, I never changed the permissions of any file in my
repo.  And moreover:

   $ ls -o test/rmailmm.el
   -rwxrwxr--+ 1 Dani 3106 Sep 4 16:19 test/rmailmm.el

According to 'ls', the file mode is 774, but according to git is
755.  Which one is wrong?

Git internally only stores file permissions of 755 or 644*; anything
else is mapped down to one of those two, based (I believe) on whether
the user execute bit is set or not.

Well, let's try to revert the misterious change:

   $ git checkout test/rmailmm.el

   $ git status --short test/rmailmm.el
    M test/rmailmm.el

   $ git diff test/rmailmm.el
   diff --git a/test/rmailmm.el b/test/rmailmm.el
   old mode 100644
   new mode 100755

   $ ls -o test/rmailmm.el
   -rwxrwxr--+ 1 Dani 3106 Sep  4 16:28 test/rmailmm.el

Apparently nothing has changed after the 'git checkout'!!

It looks like the underlying file system is failing to record the file
permissions correctly**.  That could be a limitation of the file system
(FAT32 is much more limited than NTFS, for example, and I could believe
permissions go very wrong over network shares), of the options with
which the filesystem is mounted in Cygwin (take a look for "noacl" in
the Cygwin FAQs), or possibly just that you don't have permission to
change the file properties (although I'd expect an error in that
scenario).  Another option is that some non-Cygwin program is getting in
the way and interfering with the permissions.

This could also be a result of default ACL entries on the directory 'test'. Dani, you might want to try 'setfacl -b test' and/or 'setfacl -k test'. ('setfacl -h' will give you more information.)

Ken


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]