git の差分比較・マージを WinMerge で行うなどの設定を参照することで、WindowsのgitでWinMergeで比較、マージできるようになりますが...
自分の環境では以下の問題があり、その点についてさらに別の設定で対応可能でした。
問題とは
- ファイルのバックアップとして.origというファイルが生まれる(正確にはマージ成功後に削除されてない)
- ファイルのバックアップとして.bakというファイルが生まれる
git(SCM)なので、ここでこれらのファイルは不要と言えます。
1.についてはgit側が生成しているので、参考1にして以下の設定を入れます。
shell
> git config --global mergetool.keepBackup false
これで成功後に削除されます。
2.についてはWinMerge側の設定なので、参照2を元に、WinMergeのオプションを変えてしまうことで対応できます。
難点は普通に使う時にバックアップファイルを出力してくれなくなりますが...
当方の現在の最終的な設定は以下です。WinMerge日本語版かつtool指定デフォルトにしています。
.gitconfig
[merge]
tool = WinMerge
[mergetool]
prompt = false
keepBackup = false
[mergetool "WinMerge"]
path = C:/Program Files/WinMerge/WinMergeU.exe
cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" -e -u -wl -wr \"$LOCAL\" \"$BASE\" \"$REMOTE\" -o \"$MERGED\"
trustExitCode = false
[diff]
tool = WinMerge
guitool = WinMerge
[difftool]
prompt = false
[difftool "WinMerge"]
path = C:/Program Files/WinMerge/WinMergeU.exe
cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" -f \"*.*\" -e -x -ub -wl -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\"
trustExitCode = false
[alias]
windiff = difftool -y -d -t WinMerge
winmerge = mergetool -y -t WinMerge
aliasの*-y*は不要なはずだが、とりあえずそのままです