[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
コンピュータユーザは,二つのファイルの差がどれくらいあるのか尋ねることが 多いことを知っています.おそらく一つのファイルは,もう一つのファイルのよ り新しいバージョンでしょう.もしかすると,二つのファイルは最初は同一のも のだったのですが,別々の人が変更したものかもしれません.
二つのファイルや,二つのディレクトリでそれぞれ対応するファイルの差を表示
するために,diff
コマンドを使用することが可能です.
diff
は,行単位でのファイル間の差を,コマンドラインで選択可能な
いくつかの書式で出力します.この差の組は差分(diff)やパッチ
(patch)と呼ばれることもよくあります.同一ファイルに対して,通常
diff
は何も出力しません.バイナリ(テキストでない)ファイルに対し
て,通常diff
はそれらが異なっていることだけを報告します.
二つのファイルの差がある場所のオフセットと行番号を表示するために,
cmp
コマンドを使用することが可能です.cmp
では,二つの
ファイル間で異なっている全ての文字を並べて表示することも可能です.二つの
ファイルを文字単位で比較するもう一つの方法としては,Emacsコマンドの
M-x compare-windowsがあります.そのコマンドの詳細は,See section `Other Window' in The GNU Emacs Manual.
三つのファイル間の差を表示するためにdiff3
コマンドを使用するこ
とが可能です.二人の人が共通のオリジナルに個別の変更を行なったとき,
diff3
でオリジナルと二つの変更されたバージョンの差を報告させる
ことが可能で,衝突しているという警告を用いながら,両者の変更をそれぞれ含
めているマージされたファイルを生成することが可能です.
二つのファイルを対話的にマージするためにsdiff
コマンドを使用す
ることが可能です.
(プログラムのソースコードのような)テキストファイルへの更新を他の人に配布
するために,diff
で生成された差分の組を使用することが可能です.
比較したファイルの差が小さいとき,この手法は特に役に立ちます.
diff
出力を与えることで,更新するためのpatch
プログラ
ムを使用したり,ファイルのコピーをpatchにしたりすることが可能です.
diff
とは差分を生成するために一つのファイルからもう一つのファイ
ルを引くことだと考える場合,patch
とは,もう一つのものを再生成
するために差分を一つのファイルに加えることだと考えることが可能です.
このマニュアルの最初では差分の作成に集中し,その後でファイルを更新するた めに差分を使用する方法を提示します.
GNU diff
は,Paul Eggert,Mike Haertel,David Hayes,
Richard Stallman,そしてLen Towerによって書かれました.Wayne Davisonは,
一体化した出力書式を設計し実装しました.基本的なアルゴリズムは,"An
O(ND) Difference Algorithm and its Variations", Eugene W. Myers,
Algorithmica Vol. 1 No. 2, 1986, pp. 251--266と,"A File
Comparison Program", Webb Miller and Eugene W. Myers,
Software--Practice and Experience Vol. 15 No. 11, 1985,
pp. 1025--1040に記述されています.
アルゴリズムは,"Algorithms for Approximate String Matching",
E. Ukkonen, Information and Control Vol. 64, 1985, pp.
100--118に記述されているものに依存しないようにして発明されました.
GNU diff3
はRandy Smithによって書かれました.GNU
sdiff
はThomas Lordによって書かれました.GNU cmp
はTorbjorn GranlundとDavid MacKenzieによって書かれました.
patch
はLarry WallとPaul Eggertによって書かれました.いくつかの
GNUの拡張部分はWayne DavisonとDavid MacKenzieが寄贈してくれました.
このマニュアルの一部は,Larry Wallによって書かれたマニュアルページを適用
していて,それには彼の許可が付随しています.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |