次: Interactive Merging, 前: Comparing Three Files, 上: Top
二人の人が同じファイルのコピーへの変更を行なったとき,衝突している部分の 警告を用いて,お互いの変更の両方を含んでいるマージされた出力を diff3で生成することが可能です.
三つ以上のファイルを同時に比較するために,diff4と diff5のような名前のプログラムを想像するかもしれませんが,実際 にそれが必要になることは滅多にありません.二つの変更の組を同時にマージす ることで,三つ以上のファイルの変更の組をマージするために, diff3を使用することが可能です.
diff3で,二つの修正されたバージョンから共通の以前のバージョン に変更を取り込むことが可能です.これで,二つの新しいファイルに存在する変 更された組をマージします.二番目の引数として共通の以前のバージョンを指定 し,二つの新しいバージョンを最初と三番目の引数として以下のように指定して ください.
diff3 mine older yours
アルファベット順なので,引数の順番を覚えられるでしょう.
このことから,yoursからolderを取り除いてその結果をmine に追加したり,olderからyoursへの変更をmineにマージして いると考えられるでしょう.このマージは,それぞれの変更が近くにあり, mineとolderでマッチする限りうまくいくでしょう.すべての三つ の入力ファイルが異なっているときや,olderだけが異なっているときは うまくいかないでしょう.これを衝突(conflict)と呼んでいます.三つの 入力ファイルがすべて異なるとき,この衝突をオーバーラップ(overlap) と呼んでいます.
diff3は,オーバーラップや衝突を処理する方法も提供しています. オーバーラップや衝突を削除したり,オーバーラップだけを選択したり,衝突を 特殊な`<<<<<<<'と`>>>>>>>'の行で印を付けたりすることが可能です.
diff3で,マージした出力を作成するために最初のファイルに適用す ることが可能なedスクリプトとして,マージした結果を出力すること も可能です.しかし,diff3でマージした出力を直接生成した方が良 いでしょう.これでedの問題も回避します.