マージされる 2 つのファイルの祖先ファイルが指定されている場合、共通の祖先ファイルにある対応する行と比較した結果に従って、各子孫の行にマークが付けられます。
3 つのファイルがすべて一致している行には、グリフは表示されません。
祖先には存在していない行が、子孫の一方または両方に追加されている場合、行が追加されているファイルの該当行の横に正符号 (+) が表示され、異なっている文字が強調表示されます。
祖先に存在している行が、子孫の一方または両方から削除されている場合は、行が削除されているファイルの該当行の横に負符号 (-) が表示され、異なっている文字には取り消し線が引かれ、強調表示されます。
祖先の行が、子孫の一方または両方で変更されている場合は、行が変更されているファイルの該当行の横に縦棒 (|) が表示され、異なっている文字が強調表示されます。
解決済みの相違には、アウトラインフォントでグリフが付けられます。
表 3-1 に、自動マージのアルゴリズムを示します。「祖先」は、祖先ファイルに存在するテキスト行の内容です。「変更 1」は、子孫の一方の行に対して行われている変更です。「変更 2」は、「変更 1」とは別の子孫の行に対して行われている変更です。左右の子孫に対して異なる変更が行われている行が存在している場合のみ、自動マージが失敗します。
表 3-1 自動マージ規則
左の子孫 |
右の子孫 |
自動マージ後の行 |
---|---|---|
祖先 |
祖先 |
祖先 |
変更 1 |
祖先 |
変更 1 |
祖先 |
変更 2 |
変更 2 |
変更 1 |
変更 1 |
変更 1 |
変更 1 |
変更 2 |
自動マージ不可 |
ファイルマージによって自動的に相違が解決されると、グリフはアウトラインフォントに変わります。ファイルマージで自動的に解決した相違について、適切な選択がなされているか確認できます。
自動マージ機能を無効にするには、「オプション」メニューで「自動マージ」の選択を解除します。自動マージ機能を無効にすると、ファイルマージでは、3 つのファイルすべてに共通する行のみでマージ後のファイルを構築し、相違の解決はユーザーに一任されます。
祖先ファイルを指定しない場合、2 つの入力ファイルの相違を比較するための参照先がないため、ファイルマージでは相違のある行のどちらが必要な変更かを判断することができません。祖先のない自動マージの結果は、自動マージ機能を無効にしているときと同じになります。ファイルマージでは、2 つの入力ファイルに共通する行のみでマージ後のファイルを構築し、相違の解決はユーザーに一任されます。