もともとMacで開発していたプロジェクトがあるのですが、最近になってWindows機も使うようになってしまいました。Windowsとはいっても、実際に開発しているのはVMwareの上で動いているubuntuなのですが。で、Macとのファイル共有にDropboxを使うまではいいのですが、それをホスト側のWindowsで動かし、DropboxのフォルダをVMwareのファイル共有機能でubuntuに見せたあたりから妙なことになってきました。
なんでだか知りませんが、Windowsでファイルを作ると、world-readable/writable/executable なファイルができますよね?Dropbox経由でやってきたファイルもそうなってしまいました。で、git を動かすと、すべてのファイルのモードが変更されたと判断されるのです。これをうっかりとコミットして、Mac側のファイルにすべて実行権限が付加されたらやばいじゃないですか。まったく、迷惑な話なり。
こういうときのひとつの解決法は git がファイルモードを無視するような設定だそうです。
> git config core.fileMode false
まずはめでたいけれども、Windows側で新しいファイルを作成するとそれがMacやLinux側ではworld-readable/writable/executableになってしまうんでしょうね。やだなぁ。。。
少し疑問なのはubuntuで作成したファイルの属性はどうなるのかということ。前述の設定だと、umask = 022 でも、touch したファイルは world-rwx になるし、これを chmod することはできません。全然、駄目じゃないの。
Dropbox は、ubuntu 側で動かすしかないのかな?