次: , 前: Detailed diff3 Normal, 上: 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が見つかるためです.