Next: , Up: Emergeでのファイルのマージ   [Contents][Index]


29.6.1 Emergeの概要

Emergeを開始するには、以下の4つのコマンドの1つを実行します:

M-x emerge-files

指定した2つのファイルをマージします。

M-x emerge-files-with-ancestor

共通の祖先(ancestor)を参照して、指定した2つのファイルをマージします。

M-x emerge-buffers

2つのバッファーをマージします。

M-x emerge-buffers-with-ancestor

第3のバッファーにある共通の祖先を参照して、2つのバッファーをマージします。

Emergeコマンドは2つのファイルまたはバッファーを比較して、3つのバッファーにそれ表示します。最初の2つは入力テキスト(AバッファーBバッファー)で、残りの1つ(マージバッファー)はどこにマージが行われたかを表示します。マージバッファーは相違だけではなく、マージされたテキストをすべて表示します。2つの入力テキストが異なる場所では、どちらをマージバッファーに含めるか選択できます。

既存のバッファーから入力を得るEmergeコマンドは、そのバッファーがナローされている場合は、バッファーのアクセス可能な部分だけを使用します。 ナローイングを参照してください。

2つのマージされるテキストの元となる、共通の祖先となるバージョンが利用可能な場合は、Emergeはどちらが正しい候補かを推測するために、それを使用することができます。一方のカレントバージョンが祖先に一致する場合、Emergeはもう一方のカレントバージョンが、マージされたバージョンに残すべき、意図した変更であると仮定します。共通の祖先となるテキストを指定したい場合は、‘with-ancestor’がつくコマンドを使用します。これらのコマンドは3つのファイルまたはバッファーの名前 — バージョンA、バージョンB、そして共通の祖先の名前を読み取ります。

比較が終了してバッファーの準備ができた後、対話的なマージが開始されます。マージバッファーで特別なマージコマンドをタイプすることにより、マージを制御できます(マージコマンドを参照してください)。入力テキストの相違それぞれにたいして、どちらを残すか、または両方編集するか選択することができます。

マージバッファーはこれらの選択を行うために、Emergeモードという特別なメジャーモードを使用します。しかし、そのバッファーでは通常のEmacsコマンドで編集することもできます。

常にEmergeの注目は、選択された相違と呼ばれる、特定の相違に焦点を置きます。この相違は、3つのバッファーで以下のようにマークされます:

vvvvvvvvvvvvvvvvvvvv
text that differs
^^^^^^^^^^^^^^^^^^^^

Emergeはすべての相違に順番に番号をふり、モードラインには選択された相違の番号が常に表示されます。

マージバッファーは通常、バージョンAのテキストで開始されます。しかしバージョンAの相違が共通の祖先と一致する場合、その相違の初期値にはバージョンBが優先されます。

マージバッファーを抜けるとき、Emergeはマージされたテキストを残します。このとき、C-x C-wで、それをファイルに保存できます。emerge-filesまたはemerge-files-with-ancestorに数引数を与えた場合、ミニバッファーを使用して、出力するファイル名を読み取ります(これは、このコマンドが読み取るファイル名の最後のファイル名です)。その後Emergeから抜けると、マージされたテキストを出力ファイルに保存します。

通常、Emergeコマンドは終了するとき出力バッファーを、そのバッファーのファイルに保存します。EmergeをC-]で中断した場合、Emergeコマンドは出力バッファーを保存しませんが、もし保存したいときは自分で保存することができます。