二つまたは三つの入力ファイルの差分の行のグループは,diff3 hunksと 呼ばれ,diffのhunkに似ています(see Hunks).diff3 のhunkで三つの入力ファイルがすべて異なる場合,hunkは三方向の hunk(three-way hunk)と呼ばれます.二つの入力ファイルだけが異なる場合, それは二方向のhunk(two-way hunk).
diffと同様に,いくつかの解が考えられます.ファイル‘A’, ‘B’,そして‘C’を比較するとき, diff3は通常,二つのコ マンド‘diff A B’と‘diff A C’で出力される二方向のhunkをマージし て,diff3のhunkを見つけます.これでは,必ずしも出力が最小にな るわけではありませんが,例外は滅多にないでしょう.
例えば,Fには三行‘a’,‘b’,‘f’が含まれていて, Gに‘g’,‘b’,‘g’という行が含まれていて,そして Hに‘a’,‘b’,‘h’という行が含まれていると仮定します. ‘diff3 F G H’の出力は以下のようになるでしょう.
====2 1:1c 3:1c a 2:1c g ==== 1:3c f 2:3c g 3:3c h
その理由は,最初のファイルと三番目のファイルの‘a’が含まれる二方向の hunkと二番目のファイルの‘g’を見つけ,単一行の‘b’が三つのファイ ルすべての共通行として見つかり,それぞれのファイルの最後の行に含まれる三 方向のhunkが見つかるためです.