LoginSignup
7
16

More than 3 years have passed since last update.

Macでコンフリクト時に単語差分も出すマージツール「DiffMerge」

Last updated at Posted at 2018-08-26

はじめに

今までgitのコンフリクトを解消するマージツールとしてvimdiffを使っていたが、diffchar.vimを使っても単語ごとの差分をうまく表示してくれないので、csvなどのマージの際にコンフリクトした箇所をわざわざ違うdiffツールを使って差分を確認するなどの面倒な作業が発生した。
そこで、単語ごとの差分を出してくれるマージツールを探すことにした。
WindowsであればWinMergeという有名なツールがあるが、Macだと意外とよいのが見つからない。ちなみに自分のPCのOSは以下。

macOS High Sierra 10.13.6

探してみたところ、DiffMergeというツールがよさそう。

ダウンロード

ダウンロードページから「OS X 10.6+ Installer (Intel)」をダウンロード。
あとはpkgファイルを開いてインストーラの指示に従うだけ。

gitの設定

マージツール設定

git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"'
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false

diffツール設定

こちらの設定はdiffにもDiffMergeを使いたい場合のみでOK。

git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'diffmerge "$LOCAL" "$REMOTE"'

DiffMergeの日本語設定

デフォルトのままだと日本語が文字化けするので、以下を参考に文字コードを設定。

ソースコードの差分比較にDIFFMERGEを日本語対応して使ってみる

結果

* test_LOCAL_61230.md, test_BASE_61230.md, test_REMOTE_61230.md - SourceGear DiffMerge 2018-08-27 02-55-28.png
単語の差分がちゃんとわかる!
あとは真ん中のビューに最終的に適応したい差分を取り込み、保存すればOK。

参考

7
16
10

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
16