タグ

Programmingとdiffに関するyokochieのブックマーク (3)

  • パッチの作り方と当て方はこうするもんね - 檜山正幸のキマイラ飼育記 (はてなBlog)

    パッチの作り方/当て方を毎回忘れる。だからメモしておこう、っと。単にコマンドのオプションだけでなくて、ファイル/ディレクトリ名とかカレントディレクトリをどこにするかとかで悩むから、これも約束事として決めてしまえ! 例 foo.txt 変更前: first line second linefoo.txt 変更後: first line 2nd line third line hoge/ 変更前: hoge/ +--- foo.txt hoge/ 変更後: hoge/ +--- foo.txt (変更) +--- bar.txt (新規) 単一ファイルのパッチ オリジナルファイルには接尾辞".orig"を付けておく。 パッチを作るときも当てるときも、そのファイルがあるディレクトリで作業。 パッチファイル名は、当該ファイル名.日付.diff。 パッチ作成: > diff -u foo.txt.o

    パッチの作り方と当て方はこうするもんね - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • ウノウラボ Unoh Labs: diff with C++

    ミートソーススパゲティを作るときは、ミートソースから作るのが信条のbokkoです。それはさておき、今日はdiffのお話です。 diff diffは指定した2つのファイルの差分を求めるコマンド、もしくはその差分そのものを指します。普段から何気なく使用しているコマンドですが、その中で使われているアルゴリズムは結構難しいです。 差分を計算するということ 差分を計算するというのは以下の3つを求めることに帰結します。 ・Levenshtein Distance(Edit Distance) ・LCS(Longest Common Subsequence) ・SES(Shortest Edit Script) 上から順に1つずつ説明していきます。 Levenshtein Distance Levenshtein Distanceは2つのシーケンスの違いを数値化したもので編集距離とも言います。これは後述

  • Javascriptでdiffる ( with 形態素解析 ) (nakatani @ cybozu labs)

    Javascript で diff というのはいくつか試された例はあるようですが、まだこれといった決定打は出ていない様子です。 実は diff は見た目ほど軽い処理ではないので、Javascript にやらせるのはこれが結構大変…… diff の計算量は、おおざっぱに言うと比較対象の要素数の二乗に比例し(実際にはそれより小さくすることができるのですが、まあ話のイメージとして)、かつメモリを大量に消費するので、バッチ的な処理に最適化されていない Javascript にはどうしても荷が重いものとなってしまいます。 比較対象の要素数を減らせば当然計算量は減りますが、行単位で比較してもあまり嬉しくない(わざわざ Javascript で処理するということは自然文が対象と思って良いでしょう)。最小の文字単位だとギブアップ。 ということは形態素解析で分かち書きして、単語単位で diff するのが J

  • 1