開発環境 - マージ
こではソースのマージについて扱う 差分 †2つあるいはそれ以上のテキストファイル間の違いを差分という。 A,Bという2つのファイルがありAにたいし次のような操作をしたときに Bと内容が一致するような操作を検出し表示するプログラム の出力は差分と呼ばれる。
差分の不確定性 †A + p1 = B A + p2 = B p1 ≠ p2 となる p1,p2 が存在することがある。 (無意味に例えば1行削除して同じ内容の行を足すようなことをすればいくらでもあるけれど) diff †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 patch †diffの出力を入力としてファイルの編集を行うコマンドとしてpatchというプログラムが ある。 マージ †3wayマージ †マージツール †比較オプションの注意 †
WinMerge †patch †k3diff †p4merge †VCSツールのマージ †StartTeam †マージに失敗 †copy(上書きコピー) †なぜマージするか †マージ上の注意 †ツールは意味を考慮しない †バイナリファイルのマージ †Microsoft Office文書のマージ †Word †Excel †TortoiseHg † |