git mergetoolについてあれこれ試した結果
gitでは、mergetoolというコマンドを打ち込むと
マージの為に設定されたツールが立ち上がります。
Macの場合、標準では、opendiffが選ばれます。
とはいえ使い勝手がよいかというとそうでもないのでせっかくの機会ですから
色々試してみました。
●Changes.app
これは、日頃差分ツールとして愛用しているシェアウェアですが、
実は、Git mergetoolとしても設定できるそうで。
こちらのページが参考になります。
任意の場所にgit-chdiff.shというファイルを作成し、
chmod +xで実行権限をつけておきます。
ファイルの内容は、以下のコマンドを記述します。
#!/bin/sh [ $# -eq 7 ] && /usr/bin/env chdiff --wait "$2" "$5"
そして、git configコマンドで、外部diffツールとして関連づけておきます。
ここまでは、差分ツールとしての設定ですね。
git config --global diff.external /Users/keisukehata/git-chdiff.sh
git mergetoolとして登録するには、Changes.appのメニューで
Install Terminal Utilityを実行し、chdiffをインストールしておきます。
Changes.appは、GUIツールなのでgitからは呼ぶ事ができず、
CUIツールである必要があります。
インストールが終わったら、
.gitconfigにこのように書いておきます。
[merge] tool = chdiff [mergetool "chdiff"] cmd = /usr/bin/env chdiff --wait "$LOCAL" "$REMOTE" keepBackup = false trustExitCode = false
とまぁ、ここまで設定していうのもなんですが、
これでgit mergetoolしてmergeしても全然うまく機能してくれないんですよね・・・。
マージを終えてツールを閉じても、BASE,REMOTE,LOCALファイルが残ったまま。。。。
●DiffMerge
こちらから落とす事ができます。
フリーっす。
これは、もともとGitでサポートしているツールなので、
設定は、非常に簡単。
[merge] tool = diffmerge keepBackup = false trustExitCode = false
残念ながら、文字コードの対応が全然駄目。
なのでこれもメインのマージツールにはなれませんでした。
●Araxis Merge
製品情報
プロ版269ドル(買うならこのエディションが良い)
無料のシリアル(30日間)を発行してもらえるので
試用が可能です。
高価なマージソフトですが、それ故にほぼ理想に近いソフトです。
ただし、マージ画面が3ペインで横なのでちょっとだけ使いづらい。
画面が広くないと幸せになれません。。。
文字コードもかなり対応されているので
困ることはあまりないでしょう。
ダウンロードしたアプリのフォルダに
compare , araxisgitdiff , araxisgitmergeというツールが入っているので、
これを
/usr/local/bin
にコピーして実行権限つけておきます。
あとは、.gitconfigを設定するだけ。
簡単です。
[mergetool "araxis"] keepBackup = false trustExitCode = false
こちらの情報も参考に。
●p4merge
これぞ本命と言いたくなるマージツール。しかもフリー!!
画面も左右2画面下に結果が表示される理想の形。
こちらからダウンロード。
以下のページがすごくまとまっているのでリンクのみ。
参考ページ
マージは、このツールで決定しました。
文字コードは、UTF8に対応しているので、自分的に
ソースコードのマージができればいいのでOKなのです。
他のマージツール。
xxdiff , k3diff , tkdiff。
色々ありますねぇ・・・。
最後に、マージツールについてまとめてあるサイト