Next: , Previous: Detailed diff3 Normal, Up: Comparing Three Files


7.3 diff3のhunk

二つまたは三つの入力ファイルの差分の行のグループは,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が見つかるためです.