Emergeを起動するには、以下の4つのコマンドのいずれかを実行してください:
指定した2つのファイルをマージする。
共通の祖先を参照して、指定した2つのファイルをマージする。
2つのバッファをマージする。
第3のバッファにある共通の祖先を参照して、2つのバッファをマージする。
Emergeコマンドは、2つのファイルまたはバッファを比較し、その結果を3つのバッファに表示します。具体的には、各入力テキスト用のバッファ(AバッファとBバッファ)と、マージが行われるバッファ(マージバッファ)です。マージバッファには、相違点だけでなく、マージ後の全文が表示されます。2つの入力テキストが異なる箇所については、どちらをマージバッファに含めるかを選択できます。
既存のバッファから入力を受け取る Emerge コマンドは、それらのバッファがナローイングされている場合、アクセス可能な部分のみを使用します。ナローイングを参照してください。
統合対象の2つのテキストがともに派生した共通祖先バージョンが存在する場合、Emergeはそれを用いてどちらの代替案が正しいかを推測できます。現在のバージョンのいずれかが祖先バージョンと一致している場合、Emergeはもう一方の現在のバージョンは意図的な変更であり、統合後のバージョンにも保持すべきであると判断します。共通祖先テキストを指定したい場合は、‘with-ancestor’コマンドを使用してください。これらのコマンドは、バリアントA、バリアントB、および共通祖先という3つのファイル名またはバッファ名を読み込みます。
比較が完了し、バッファの準備が整うと、インタラクティブなマージが開始されます。マージバッファに専用のマージコマンドを入力することで、マージを制御できます(マージコマンドを参照)。入力テキスト間の差分が検出されるたびに、どちらを保持するかを選択するか、あるいは両方をまとめて編集することができます。
マージバッファでは、こうした選択を行うためのコマンドを備えた特殊なメジャーモード「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コマンドは終了時に出力バッファをファイルに保存します。C-]でEmergeを中断した場合、Emergeコマンドは出力バッファを保存しませんが、必要に応じて手動で保存することも可能です。