覚え書き、ブログ代わりなど不定期に書き散らすWiki

WinMerge で3方向マージする


SourceTree でファイルの差分を表示するときや、競合を解決するときに外部のツールを利用することができる。
特に3方向マージは、競合の解決に便利である。
3方向マージ機能を参照。

WinMerge 日本語版をインストールする。


WinMerge はファイルの差分を表示してくれるソフト。
日本語版では、WinMerge の日本語対応と追加機能が組み込まれている。
必ず日本語版をインストールしよう。

SourceTree の外部ツールの設定


以下の操作をする。
  1. メニューから「ツール」「オプション」を選択する。
  2. 「Diff」タブを選択する。
  3. 「外部Diffツール」でWinMergeを選択する。
  4. 「マージツール」で「カスタム」を選択する。
  5. 「Diffコマンド」と「引数」に以下を入力する。(パスは適宜修正して下さい)
Diffコマンド: C:\Program Files\WinMerge\WinMergeU.exe
引数: -e -ub -fr -ar -wl -wm -dl base -dm remote -dr local $BASE $REMOTE $LOCAL -o $MERGED

WinMergeで差分を表示する。


樹形図から、どれでも適当なコミットを選択して、左下のファイルの中から、
そのコミットで変更されたファイルをどれでも選択する。(ただしテキストファイル)
  1. ファイルを右クリックする。
  2. ポップアップメニューから「外部Diff」を選択する。

WinMerge が起動して、左側に変更前の状態、右側に変更後の状態が表示される。

WinMerge で3方向マージをする。


競合が発生すると、以下のように「!」マークが付く。


以下の操作をする。
  1. 競合したファイルを右クリックする。
  2. ポップアップメニューから「競合を解決」「外部のマージツールを起動」を選択する。

WinMerge が起動して、左側に履歴が分岐する前の状態、中央にマージ対象の他の人の変更内容、右側に手元のファイルの現在の内容が表示される。
左側と中央は編集不可に設定されている。
これらを参考にしながら、右側の欄の内容を編集して、マージ後の状態にする。

バックアップを保存しない設定


デフォルトだと *.bak ファイルが自動的に作られてしまい邪魔になる。
以下のように設定する。
  1. WinMergeを起動する。(SourceTreeからではなく、単独で起動する)
  2. メニューから「編集」「設定」を選択する。
  3. カテゴリから「バックアップファイル」を選択する。
  4. 「作成するバックアップ」のチェックを2個とも外す。

上記の設定をしても、*.orig というファイルが作られてしまう。
このファイルは GITが作成しているので、GIT側の設定が必要となる。
SourceTree で以下の操作をする。
  1. ツールバーから「ターミナル」をクリックする。
  2. 以下のように入力する。
git config --global mergetool.keepBackup false

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます