Next: Bypassing ed, Previous: Which Changes, Up: diff3 Merging
diff3で,衝突部分に特殊なマーカー行を用いてマージされた出力を 囲むことで,印を付けることが可能です.二つのファイルAとBから の衝突は,以下のように印が付きます.
<<<<<<< A lines from A ======= lines from B >>>>>>> B
三つのファイルA,BそしてCからの衝突は,以下のように印 が付きます.
<<<<<<< A lines from A ||||||| B lines from B ======= lines from C >>>>>>> C
-Aや--show-allオプションは,-eオプションのよ うな動作をしますが,衝突部分を大カッコで囲み,マージされていない変更だけ でなく,olderからyoursへのすべての変更を出力します.このため, サンプルの入力ファイル(see Sample diff3 Input)が与えられると, ‘diff3 -A lao tzu tao’は,tzuの差異部分の衝突の周りに大カッ コを書きます.
<<<<<<< tzu ======= The Way that can be told of is not the eternal Way; The name that can be named is not the eternal name. >>>>>>> tao
また,三方向の衝突は以下のように出力されます.
<<<<<<< lao ||||||| tzu They both may be called deep and profound. Deeper and more profound, The door of all subtleties! ======= -- The Way of Lao-Tzu, tr. Wing-tsit Chan >>>>>>> tao
-Eや--show-overlapオプションは,-Aや --show-allオプションより情報が少なくなり,それはマージされてい ない変更だけを出力し,二番目のファイルの内容を出力しないためです.そのた め,-Eオプションは-eオプションのように動作しますが,三 方向のオーバーラップした変更で,最初と三番目のファイルが大カッコで囲みま す.同様に,-Xは-xのように動作しますが,(オーバーラッ プが必要な)変更のすべてを大カッコで囲みます.例えば,上記のような三方向 のオーバーラップしている変更に対し,-Eと-Xオプションは 以下を出力します.
<<<<<<< lao ======= -- The Way of Lao-Tzu, tr. Wing-tsit Chan >>>>>>> tao
無意味で情報のない名前を持つファイルを比較している場合,‘<<<<<<<’, ‘|||||||’,そして‘>>>>>>>’の大カッコで別名を表示するために, -L labelや--label=labelオプションを使用す ることが可能です.このオプションで,それぞれの入力ファイルごとに,三回ま で与えることが可能です.このため,‘diff3 -A -L X -L Y -L Z A B C’は ‘diff3 -A A B C’のように動作しますが,出力は,ファイル名‘A’, ‘B’,そして‘C’ではなく,ファイル名‘X’,‘Y’,そして ‘Z’からのようになります.