Mercurial でマージツールに Meld を使う

kdiff3 は日本語の編集に問題があり、日本語をマージ作業中に編集する必要がある場合、作業が困難ですので、別のマージツールに変更することにします。

UbuntuGUI のマージツールである Meld をインストールし、Mercurial のマージで使えるようにします。

インストール

$ sudo apt-get install meld

.hgrc での設定

[ui]
merge = meld

とします。これで完了です。

マージの仕方

hg merge し衝突があると、以下のように meld が起動します。


Meld のウィンドウの並び順は、local, base, other となっています。衝突した部分に色が付いています。



other の矢印をクリックします。



other の変更点が base へ移りました。


さらに base の矢印をクリックすると、

base の変更点が local へ移り、3つのファイルが同一になりました。

これで保存して Meld を終了すれば、衝突が解決されます。むろん、3つのファイルを同一にする作業は必須ではなく、local を正しく修正すればいいだけです。日本語の扱いも問題ありません。

Meld で diff を見る

~/.hgrc に以下を追加します。

[extensions]
extdiff =

[extdiff]
cmd.meld =

これで「hg meld」コマンドが使えるようになります。

hg diff と同じように使えます。

$ hg meld -r 2167:2168

複数のファイルがある場合は、以下のように変更されたファイルの一覧が表示されます。


ファイルをダブルクリックすれば、差分が表示されます。