めも

これはメモ。

.csproj, .vsproj.filter ファイルのマージ時のコンフリクト解消

問題

.vsproj.filterなどのファイルをマージする際にコンフリクトが発生してマージできない。 ソリューションエクスプローラで表示されるファイル構造の保存にこのファイルが使用されている。

リモートのブランチで別のファイルを追加していてローカルでも別のファイルを追加していたとしてそれをマージする場合に同じ行にリモートとローカルのファイルを追記しようとしてコンフリクトを起こす時がある。

解決

.gitattributesファイルに以下の指定を追記することで、.vsproj.filterファイルのみマージの時にコンフリクトしたら両方を採用する様に指定できる。コンフリクト時の行の順番は保証されないので注意。

*.vsproj.filter merge=union

行の順番は保証しなくても大丈夫なファイルのみ使える指定なので、使用する場合は注意が必要。 他のオプションについてはドキュメント参照。