3

The scenario is that there is a single git repository (with a working folder) on an IBM i server. That same folder is shared to a Windows machine. The code in that folder was created on the Windows machine, but the repository and the initial check-in was done via git on the server. (The git client on that server is essentially a linux version).

Now, when i view git status from the git client on the server, the working directory shows as having no changes. However, if i use the git client on my Windows machine, i see every file has being changed. I initially thought this had to do with the core.autocrlf setting, but i turned off that feature in the Windows git client(autocrlf=false) and it was not set at all in the server's git config.

Can anyone explain why i am seeing two different results from the two git clients?

FYI, i must use the git client on the server because the git commands have to integrate with a more comprehensive change management solution on that server. However, using git from Windows is more convenient since i can make use of git GUIs on Windows, and that will help with introducing git to the rest of the team.

snorkpete
  • 14,278
  • 3
  • 40
  • 57

1 Answers1

2

Based on the comments, it sounds like git is tracking a permissions change for every file. See here for how to not make git track file permissions. Summarizing the answer, you likely want to do git config --global core.filemode false. To make sure this is the issue, execute git -c core.filemode=false diff. You should (hopefully) see an empty diff.

A word of warning: If you have tight security practices, this is likely something you don't want to do. It might be better to just accept/track the file permissions changes.

Community
  • 1
  • 1
Matt Messersmith
  • 12,939
  • 6
  • 51
  • 52
  • point taken. will look into the cause of why those files have the executable bit set - they probably shouldn't, and will probably update the files properly to avoid the issue altogether – snorkpete Apr 08 '16 at 15:42