git: patch does not apply

my_pcc_branch.patchというあるパッチがあります。

これを適用しようとすると、次のようなメッセージが表示されます。

$ git apply --check my_pcc_branch.patch
warning: src/main/java/.../AbstractedPanel.java has type 100644, expected 100755
error: patch failed: src/main/java/.../AbstractedPanel.java:13
error: src/main/java/.../AbstractedPanel.java: patch does not apply

これはどういう意味ですか?

この問題を解決するにはどうしたらいいですか?

ソリューション

msysgit@googlegroups.com メーリングリストのJohannes Sixt氏は、以下のコマンドライン引数を使用することを提案しています。

git apply --ignore-space-change --ignore-whitespace mychanges.patch

これで私の問題は解決しました。

解説 (9)

git apply --reject --whitespace=fix mychanges.patch`でうまくいきました。

解説 (8)

これは UNIX と Windows の git クライアントが混在しているときに起こります。Windows には "x" ビットの概念がないので、Windows で rw-r-- (0644) のファイルをチェックアウトすると msys の POSIX レイヤーによって rwx-r-xr-x (0755) に "promoted" されてしまいます。git はこのモードの違いをファイルのテキストの違いと基本的に同じだと考えるので、あなたのパッチは直接適用されません。 ここでの唯一の良い方法は、core.filemodefalse に設定することだと思います (git-config を使用します)。

msysgit issueに関連する情報があります。 http://code.google.com/p/msysgit/issues/detail?id=164(archive.orgの2013年12月3日のコピーにリルートされました。)

解説 (3)