More than 1 year has passed since last update.

git の差分比較・マージを WinMerge で行うなどの設定を参照することで、WindowsのgitでWinMergeで比較、マージできるようになりますが...

自分の環境では以下の問題があり、その点についてさらに別の設定で対応可能でした。

問題とは

  1. ファイルのバックアップとして.origというファイルが生まれる(正確にはマージ成功後に削除されてない)
  2. ファイルのバックアップとして.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は不要なはずだが、とりあえずそのままです

参考ページ
1.http://orangeclover.hatenablog.com/entry/20121210/1355140555
2.http://tech.kimihiko.jp/article/27062396.html

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.