UNIXに標準で搭載されているコマンドとしてdiffコマンドがある. このdiffコマンドは一般には差分の検出に利用され, 与えられた二つのファイル間の違いを探し, 順序情報を保持したまま結果を出力する. 例えば,
今日
学校へ
行く
ということが書いてあるファイルを
今日
大学に
行く
という文に修正して, 書き換えたファイルがあるとする. これらの2つのファイルに対してdiffコマンドを行うと差分の部分が
< 学校へ
> 大学に
のような形で出力される.
「今日」と「行く」という部分は修正前のファイルにも修正後のファイルにも存在しており, 書き換えられていない. これは修正前後での共通部分として扱い, 共通部分の間にある書き換えられた「学校」と「大学」が差分として出力される仕組みとなっている.
これに加えてdiffコマンドには-Dオプションという便利なオプションがあり, これをつけてdiffコマンドを使うと差分部分だけでなく共通部分も出力される. つまりファイルのマージが実現される. しかしifdefという機械的な記号が含まれてくるため人間の目で認識しづらい面もある.
そこで差分部分の始まりに▼, 二つのデータの境界に●, 差分部分の終わりに▲を用いて出力結果を表すことにする. 実際の形式としては,
▼▼▼▼▼
(一つめのファイルにだけある部分)
●●●
(二つめのファイルにだけある部分)
▲▲▲▲▲
となる. これをマージを行うdiffとしてmdiff[19]と呼ぶ.
そこで先程のデータに対してmdiff[19]を行うと以下のような結果になる.
今日
▼▼▼▼▼
学校へ
●●●
大学に
▲▲▲▲▲
行く