Merge の Professional Edition では、変更した 2 つのファイルを共通の親ファイルへ自動マージすることができます。一般的にこの機能は、2 名の開発者が構成管理システムに格納されている共通のソース ファイルを別々に編集し、各ファイルの変更箇所を検証/マージする場合に使用します。
Merge の Professional Edition では自動フォルダ マージも機能し、ソース ツリー全体の 3 者間マージをすばやく実行できます。
自動マージを開始する
自動マージは 3 者間ファイル比較でのみ機能します。共通の親ファイルを中央のファイル ペインに置き、その両側(左右)のペインに編集した子ファイルを配置します。ファイル比較ウインドウを起動するために 3 者間フォルダ比較ウインドウを開いている場合、共通の親フォルダが必ず中央ペインに配置されるようにする必要があります。
自動マージを開始するために、共通の親にマージ ツールバー ボタンをクリックするか、マージ▸共通の親にマージ メニュー項目を選択します。
自動マージの処理
自動マージを開始すると、Merge は 3 つのファイルを先頭から終わりに向かって検証します。3 つのファイル間の変更がそれぞれ検証されて、最終的なマージ ファイルに変更箇所をそのまま保持するか、あるいは追加するかが判断されます。どのように処理すればよいか Merge が判断できないタイプの変更箇所がある場合、ユーザの注意を促すための不一致マークが付けられます。
マージ処理が完了すると、中央のファイル ペインには結果(マージした)ファイルが表示されます。マージ処理の結果に問題がなければ、このファイルを保存することになります。3 者間マージを実行しても、左右のファイルは変更されません。
2 つのファイル内の変更箇所から共通の親ファイルへのマージは、単純なルールに則って実行されます。2 つの変更ファイルは共通の親ファイルよりも新しいと考えられるので、両ファイルの変更箇所が重複しない限り、これらのファイルへの変更(行ブロックの挿入、削除、編集)は共通の親ファイルに適用されます。
自動マージの結果について
重複する変更箇所、またはそれぞれの最初か最後が一致する変更箇所には、不一致マーカーが付けられます。このように自動マージができない各行の先頭に、赤い不一致アイコン が表示されます。
不一致マーカー間を移動するには:
- ツールバー ボタンの 次の不一致マーカー および 前の不一致マーカー をクリックする
- メニュー コマンドの マージ▸次の不一致マーカー および マージ▸前の不一致マーカー を選択する
- F4 キーおよび Shift+F4 キーを押す
場合によっては、不一致とならないタイプの重複変更もあります。変更した両方のファイルで変更箇所が同じ場合(たとえば同じ行が追加/削除/変更されていて、それぞれの内容も完全に同じ場合)、これらの変更は共通の親ファイルにマージされます。Merge は、変更箇所をマージするかどうか判断する際に空白の有無も考慮します。したがって、両者の変更箇所がまったく同じに見えるのに不一致マーカーが付けられている場合、両方のファイルの空白や行終端が異なっていることが考えられます。
共通の親ファイルに対する変更箇所のマーク付け
共通の親に対する変更は、それぞれ変更の種類を示す編集マーカーでフラグ付けされます。
- 共通の親に挿入される行には、その行がどちらからコピーされたかを示す矢印( または )が表示されます。
- 共通の親から削除された行には、行が削除された位置の次の行に削除マーカー が表示されます。
- 手動で編集された行は、 でマーク付けされます。
、 、または マーカーには、どのような編集が行われたかを示す関連ツールヒントがあります。マウス カーソルをマーカーの上に数秒間置いたままにすると、説明が表示されます。不一致マーカー にもツールヒントがあり、その不一致の理由を示します。
編集マーカー間を移動するには:
- ツールバー ボタンの 次の編集マーカー および 前の編集マーカー をクリックする
- メニュー コマンドの 編集▸マーカー▸次の編集マーカー および 編集▸マーカー▸前の編集マーカー を選択する
- F3 キーおよび Shift+F3 キーを押す
マージされた行の淡色表示
Merge が 2 つの変更されたファイルの各行を解析し共通の親ファイルにマージすると、これらの行は淡色表示になりマージされたことを示します。3 者間マージが完了すると、不一致変更のある行だけが元の色で表示されます。マージされた行に適用される淡色の量はフォント/カラーページの薄暗くする設定で制御します。
不一致の解決
自動マージを実行したら、不一致マーカーが付けられている箇所の不一致を自身で解決する必要があります。また、共通の親ファイルに対する変更が有効かどうかも検証する必要があります。最終的に、マージした変更箇所のインデントを必要に応じて調整します。
自動マージのプレビュー
自動マージは一度実行すると元に戻すことができないので、結果がどうなるかを確認するためのプレビューを表示することができます。プレビューによって自動マージの結果に満足できない場合は、元に戻す ツールバー ボタンをクリックすることにより、自動マージの処理を元に戻すことができます。また、編集▸取り消す メニュー項目を選択するか、Cmd+Z キーを押すことにより元に戻すことができます。
自動マージのプレビュー機能により、比較しているファイル間の不一致部分をすばやく明らかにすることができます。
マーカーおよびテキスト淡色表示の解除
3 者間マージを実行した後、すべての編集/不一致マーカーを削除すると共に、淡色表示になっているテキストとブックマークを すべてのマーカーを消去 ツールバー ボタンをクリックすることにより元に戻すことができます。また、編集▸マーカー▸すべてのマーカーを消去 メニュー項目を選択するか、Cmd+D キーを押すことにより元に戻すことができます。
解決済みにマーク ツールバー ボタンをクリックすることにより、現在の選択範囲または行にいつでも解決済みの印を付けることができます。また、編集▸マーカー▸解決済みにマーク メニュー項目を選択するか、Cmd+K キーを押すことにより解決済みの印を付けることができます。これを実行すると選択範囲内の行の不一致マーカーが削除され、その結果、淡色表示となります。範囲が選択されていない場合、操作は現在の行に適用されます。