Hatena::Groupptech

ぷちてく RSSフィード

Archive
 
ProfileProfile

2012-06-02

Gitのdiff・mergeをgitconfigだけでWinMergeにする

19:31

どーもこんちわ。新しいのかいたので今後はこちらもどーぞ

ここから下は遺跡

経緯や細かな説明を知りたい人は役に立つ。初めて見た人も読んでから新エントリいくといい


どーもこんちわ。普通にgitconfigに設定するだけでWinMerge使えるけどどこにも書いてない。winmerge.shみたいなバイパス用のシェルスクリプト使うのは多分古い方法でもういらないよ というやつ

~/.gitconfig

msysGitか、GitExtensionsが自動で書いた*1mergeセクション参考にして書いたらできた

[merge]
    tool = WinMerge
[mergetool "WinMerge"]
    path = C:/Program Files/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" /m /r=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
[diff]
    tool = WinMerge
    guitool = WinMerge
[difftool "WinMerge"]
    path = C:/Program Files/WinMerge/WinMergeU.exe
    cmd = \"C:/Program Files/WinMerge/WinMergeU.exe\" -e -ub -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\"

これ足すだけ。コマンド叩くより直接追加が確実でいいとおもう

一旦path = でパス切ってやってcmd = で直接書いちゃえばいいみたい

  • \/
  • "\"

この辺気をつければハマらないはず。長ったらしいオプションはStackOverflowからパクってきた。特にいらなければ削るといいとおもう

diff

これで差分見れてべんり。mergeはまだ試してないんだけど、インストーラが書いたやつだからたぶん動く

$ git difftool [-y]
$ git mergetool [-y]

Alt + ↑とかAlt + ↓で移動したり、ついでにパッチ作ったりしてべんり

WinMergeUjp

Windowsなら差分・マージのデファクトな感じ

日本語使いならこれが出来がよくていい

Environment

たぶん.sh必要なメソッドは古いバージョンで対応してなかったからだと思う

OSWindows XP SP3
bash(MinGW)MINGW32_NT-5.1 %COMPUTERNAME% 1.0.12(0.46/3/2) 2011-07-20 17:52 i686 unknown
Gitgit version 1.7.8.msysgit.1
WinMergeVersion 2.13.20.12+-jp-12 - Japanese Unicode x86

こんなんでできた。msysGitしかやってないから、GitHub Desktop | Simple collaboration from your desktopとかCygwinとかでうまくいったらトラバしてくれるとみんながうれしいかも

Qiita

ここまでのをシンプルに英語でかいておいた

バイパス

ぐぐっても英語圏含めて.shのやつしか見つけられなかった。たぶんこのエントリ検索上位にこないからみんな.sh延々と使いそう。うーん、それともウチの環境がなんかおかしいのか

あと結構書式普通に間違えて転載しまくってるのが多くて、これじゃコピペマンはハマると思った。"をエスケープしてなかったり、足りなかったり

ちなみに.sh使うやつ試したんだけど、exeみっかんないって怒られてdiff出てこなかった。

ほんで~/.gitconfigだけでやったらうまくいった。失敗してよかった