開発環境 - マージ
こではソースのマージについて扱う
2つあるいはそれ以上のテキストファイル間の違いを差分という。
A,Bという2つのファイルがありAにたいし次のような操作をしたときに Bと内容が一致するような操作を検出し表示するプログラム の出力は差分と呼ばれる。
A + p1 = B A + p2 = B p1 ≠ p2
となる p1,p2 が存在することがある。
(無意味に例えば1行削除して同じ内容の行を足すようなことをすればいくらでもあるけれど)
Unix系では以前からdiffコマンドが標準的に使われていた。
パッチ作業、差分ツールの出力をもとに自動的に行うプログラムもある。
そのようなプログラムは
のA,pを入力としてAを編集しBの内容を生成する。
入力としてAの類似ファイルA'に対しパッチpを当てることもできる。 この場合結果としてB'が結果として得られる。
この操作は必ずしも成功するわけでない。AとA'の差によってはプログラムが判断できない場合もあるし人間が判断できないばあいもある。
orig. new 1:a a 2:b b 3:c c 4:d → d 5:e e 6:X Y 7:f f
orig. BAD 1:A A 2:a a 3:b b 4:c → c 5:d d 6:e Y 7:X X 8:f f
orig. BAD 1:a a 2:b b 3:X Y 4:d → d 5:e e 6:X Y 7:f f
orig. expected 1:a a 2:b b 3:X X 4:d → d 5:e e 6:X Y 7:f f
diffの出力を入力としてファイルの編集を行うコマンドとしてpatchというプログラムが ある。