Skip to content

file mode (file permission) is not respected #2015

Closed
@nautilus7

Description

@nautilus7
  • I was not able to find an open or closed issue matching what I'm seeing

Setup

  • Which version of Git for Windows are you using? Is it 32-bit or 64-bit?
$ git --version --build-options

git version 2.20.1.windows.1
cpu: x86_64
built from commit: 7c9fbc07db0e2939b36095df45864b8cda19b64f
sizeof-long: 4
sizeof-size_t: 8
  • Which version of Windows are you running? Vista, 7, 8, 10? Is it 32-bit or 64-bit?
$ cmd.exe /c ver

Microsoft Windows [Version 10.0.17763.195]
  • What options did you set as part of the installation? Or did you choose the
    defaults?
# One of the following:
> type "C:\Program Files\Git\etc\install-options.txt"
> type "C:\Program Files (x86)\Git\etc\install-options.txt"
> type "%USERPROFILE%\AppData\Local\Programs\Git\etc\install-options.txt"
$ cat /etc/install-options.txt

Editor Option: VisualStudioCodeInsiders
Custom Editor Path: 
Path Option: Cmd
SSH Option: OpenSSH
CURL Option: OpenSSL
CRLF Option: CRLFCommitAsIs
Bash Terminal Option: MinTTY
Performance Tweaks FSCache: Enabled
Use Credential Manager: Enabled
Enable Symlinks: Disabled
  • Any other interesting things about your environment that might be related
    to the issue you're seeing?

I have WSL (windows subsystem for linux) installed, but the issue I have is outside of WSL.

Details

  • Which terminal/shell are you running Git from? e.g Bash/CMD/PowerShell/other

MINGW64

** insert your commands here **
  • What did you expect to occur after running these commands?

** insert here **

  • What actually happened instead?

The issue I have is related to the file mode (755) for executable files...
I am working on a linux git repo from windows 10. The repo contains some .sh files (executables).

When I set the "filemode = true" option in the git repo config, I always see the following:

photo1

If I change the file mode back to 755, commit the changes and push to the online repo (github), the files there will have the correct (755) mode.

But the next time I open the "git gui" application, the file mode for all files is changed again to 644 and I see the same thing as in the photo above. If I choose to "revert changes" it doesn't do anything. The file mode remains changed.

I tried commands like:

git update-index --chmod=+x config.sh
git add --chmod=+x config.sh

but I had no success. Git has all .sh files in my repo listed with 755 mode. I confirmed with the following command:

git ls-files --stage

Setting git to ignore the file mode changes (by setting "filemode = false" in the config) is not a solution because when I want to make changes to the content of these executable files, they will committed with their mode (permissions) changed as well.

So, how can I make git to ACTUALLY remember the file mode???

  • If the problem was occurring with a specific repository, can you provide the
    URL to that repository to help us with testing?

** insert URL here **

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions