merge(1) 3 つのファイル併合

書式

merge [ options ] file1 file2 file3

解説

merge は、 file2 から file3 への全ての変更を file1 に併合します。 結果は普通 file1 に入ります。 merge は、原盤に対して別々に施した変更を併合するのに便利です。 file2 を原盤だとし、 file1file3file2 を変更したファイルとします。 この場合 merge は、両方の変更を併合します。

file1file3 の両方に共通の行集合の内容が異なっている時、衝突が起こります。 衝突が見付かった場合、通常 merge は、警告および <<<<<<<>>>>>>> とで括った衝突を表す行を出力します。 典型的な衝突は以下のようなものです。

<<<<<<< file A
lines in file A
=======
lines in file B
>>>>>>> file B

衝突がある場合、ユーザは結果を編集して必要無い方を消去しなければ なりません。

オプション

-A
diff3 によって提供されていれば、 diff3(1) の -A 形式をつかって衝突を出力します。 これは、 file2 から file3 への全ての変更を file1 に併合し、もっとも冗長な出力をします。
-E, -e
これらのオプションは、 -A オプションに比べて少ない情報を生成するような衝突形式を指定します。 詳細は、 diff3(1) を見てください。 デフォルトは、 -E です。 -e を指定すると、 merge は衝突を警告しません。
-L label
このオプションは、 3 回まで指定可能であり、 衝突報告中のファイル名の場所のラベルを指定します。 すなわち、 merge -L x -L y -L z a b c とすると、実際はファイル a , b , c からの出力ですが、 ファイル x , y , z からできたような出力が作られます。
-p
結果を file1 に上書きするのではなく、 標準出力に出力します。
-q
沈黙モード。衝突に対して警告を出しません。
-V
RCS のバージョン番号を出力します。

診断

衝突が無い場合には、 0 で終了します。 1 で終了した場合はいくつかの衝突があり、 2 は何か問題がおこったことを あらわします。

作者

Author: Walter F. Tichy.
Manual Page Revision: 1.6; Release Date: 1999/08/27.
Copyright © 1982, 1988, 1989 Walter F. Tichy.
Copyright © 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.

バグ

テキストファイルの様に、バイナリファイルを併合することは、 普通できません。 しかし、 merge は何がなんでも行おうとします。