Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

今まで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。

参考

griphone
スマートフォン、PCブラウザを中心とした、様々なプラットフォーム向けのオンラインゲームを開発しています
https://www.griphone.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away