Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
古くから使われているdiffツールは、ファイルの変更箇所を正確に知るための情報を出力してくれるので、ソフトウェア開発に欠かすことができないツールといえるでしょう。しかしその表示はどちらかといえば機械向けで、人間が直感的に変更点を知るためには向いていないのかもしれません。 その欠点を補うために開発された新世代のdiffツールが「icdiff」です。変更前/変更後のソースコードを横に並べ、かつ変更箇所をハイライト表示してくれます(上の図のように)。 diffを置き換えるものではなく、補助する差分ツールとして便利に使えそうです。 インストール Mac OS X / Linux用のインストール方法は以下の通り。 curl -s https://raw.githubusercontent.com/jeffkaufman/icdiff/master/icdiff \ | sudo tee /usr/l
by Neil Fraser, April 2006 Computing the differences between two sequences is at the core of many applications. Below is a simple example of the difference between two texts: Text 1: Apples are a fruit. Text 2: Bananas are also fruit. Diff: AppleBananas are also fruit. This paper surveys the literature on difference algorithms, compares them, and describes several techniques for improving the us
Meldの開発者は9月1日、GUIでグラフィカルに差分表示やマージを行えるdiffビューア/マージツール「Meld 1.7.5」をリリースした。プロジェクトのWebサイトよりダウンロードできる。 Meldはマルチプラットフォームに対応するマージツール。ファイルやディレクトリの差分を視覚的に表示できるほか、Git、Bazaar、Mercurial、Subversionなどでのマージ操作でも利用できる。2方向のほか3方向での比較もサポートするほか、自動マージモード、リアルタイムアップデートなどの機能もある。踏査環境はWindowsおよびMac OS X、Linux。ライセンスはGPLv2。 Meld 1.7.5は細かな機能強化が中心となる。gconfにおける誤設定の処理を改善し、ファイル比較で現在の行をハイライトするかどうかを設定できるようになった。コミットダイアログにアクセスできるキーボード
diffビューア/マージツールのMeldの開発者は7月28日、最新安定版「Meld 1.7.4」をリリースした。「Subversion 1.8」のサポートなどが特徴となる。 Meldはファイルやディレクトリの比較ができるGUIツール。2方向および3方向での差分表示が可能で、Git、Bazaar、Mercurial、Subversionなど主要なバージョン管理システムをサポートする。視覚的に分かりやすいUIを特徴とし、自動マージ、リアルタイムでの比較情報アップデートなどの機能を備える。多くのLinuxディストリビューションで公式パッケージとして提供されているほか、WindowsやMac OS Xでも動作する。 Meld 1.7.4では、コミットダイアログがコミットメッセージを自動で内包するようになったほか、フォルダ比較でもリアルタイム検索を利用できるようになった。また、6月に公開されたSub
jsdifflibはJavaScript製のテキスト差分表示ライブラリです。 テキストを扱うWebアプリケーションで便利そうなライブラリがjsdifflibです。JavaScriptを使って二つのテキストの差分を表示してくれます。 デモです。二つのテキストエリアにテキストを入力しました。 Diffボタンを押すと差分が表示されます。サイドバイサイドのビューです。 行の内容が違う場合は表示色が異なります。 インラインで差分表示もできます。 jsdifflibはPython製のdifflibと互換性のあるライブラリとのことで、差分解析をサーバサイドで行って結果を描画することもできます。表示色などはCSSで自由に編集可能です。 jsdifflibはJavaScript製、BSD Licenseのオープンソース・ソフトウェアです。 MOONGIFTはこう見る Webサービスの基本はテキストコンテンツ
JS-ImageDiffはJavaScript+Canvasタグを使って二つの画像の差分表示を行うライブラリです。 GitHubでは差分をWebブラウザ上で閲覧できますが、その時に画像の差分表示も行えるのを知っているでしょうか。スライダーで動かしたりして差分を確認できるのですが、その一つの差分表示をオープンソースで再現するのがJS-ImageDiffです。 サンプルです。上が元、中間が変換後そして下が差分となります。どこが違うのか一目で分かります。 左が影無し、右が影ありです。一致している部分だけが表示されています。 サイズが違う場合の差分表示です。 JS-ImageDiffはCanvasタグを使って画像を読み込み、その差分を表示しています。各ピクセル単位で画像を比較して同じであれば黒、違う場合はうまく表示するというやり方でここまで見事に表示できるのが面白いですね。 JS-ImageDif
Pretty DiffはJavaScriptでテキストの差分を表示するライブラリ。 Pretty DiffはJavaScript製のフリーウェア(ソースコードは公開されている)。人は間違うものだ。現実世界では一度破壊してしまったものを復元するのは難しい。だがデジタルの世界であれば、バックアップを使ったり履歴管理をしておくことで以前の状態に戻すことができる。 差分表示 最近のサービスでは履歴管理が次々に取り入れられている。Dropbox、WordPress、Wikiエンジンなど様々だ。そんな履歴管理された内容をグラフィカルにチェックできるのがPretty Diffだ。 Pretty DiffはWebベースの差分表示ライブラリだ。JavaScriptやCSS、各種言語に対応する他、CSVの差分表示もできる(ただしCSVは各項目ごとに改行されて表示される)。差分表示はインライン、またはサイドバイ
UNIXの基本的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 本稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。本稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要
Click here if you're not redirected automatically.
vim などと同様に、diff も色分けされていると見易いですよね。 colordiff を使うと、普段の diff や svn diff で色分けできます。 インストール yum install colordiff diff との置き換え ~/.bashrc に alias diff='colordiff' を追加 svn 内臓 diff との置き換え ~/.subversion/config に [helpers] diff-cmd = colordiffを追加 less でも色付きで見れるように ~/.bashrc に export LESS="-R" を追加 詳しくは、less の man の --RAW-CONTROL-CHARS の項を参照のこと。
Compare Excel SheetsはWindows向けのフリーウェア。Excelはオフィスで最も多用されるアプリケーションの一つだろう。そして使っている中で多々発生するのが、二つのシートまたはファイルでマッチする、またはしない部分を抽出したいと言った作業だ。 Excelシートの比較をする 並んで表示はされているが、その内容を逐一精査していくのは非常に骨の折れる作業だ。そこで使ってみたいのがCompare Excel Sheetsというソフトウェアだ。このソフトウェアは一つのExcelファイルに含まれるシートを比較することができる。 比較は一致または一致しない列の抽出となっている。指定できるのが一つの列(または列数が一致する必要がある)だけなので、複数の列で比較したい場合は予めそれらの列にある文字を連結するような場所を用意すれば良いだろう。そして結果は元ファイルにシートを追加して、そこ
最近、C++でdiffを書いているせいか、バージョン管理システムで使われているdiffのパフォーマンスが気になったので、調べてみた。バージョン管理システムにおいてdiffはかなり重要である。というのも、diffもしくはそれに相当する処理は単に差分を表示する際だけでなく、updateやmerge時の差分適用など、至るところで行われるので、diffが遅いとバージョン管理システムにおけるありとあらゆる動作が遅くなってしまうからだ。 測定に使用したバージョン管理システム 測定に使用したバージョン管理システムは以下の通り。 Subversion-1.5.2 Monotone-0.41 Git-1.6.0.1 Mercurial-1.0.2 ちなみに上記のソフトを選択した理由は単に自分が普段から検証も含めて使用しているというだけです。 準備 まず、以下のような2種類のファイルの組合せを用意する。 Ty
オフィスではExcelやAccess、PowerPointに続いてWordも良く利用される。そして多数の人が利用するために共有にあるファイルがコピーされ、編集されてしまいベースは同じだったはずのドキュメントが多数存在する状態に陥る。 ビジュアル的なWord用マージツール そのような時に行うのがマージになる。だがテキストエディタでは容易なマージ作業も、バイナリのWordドキュメントではそう簡単にはいかない。その解決策を提案してくれるのがTextFlowだ。 TextFlowはAIR製のフリーウェアで、複数のWordファイルを相互に比較してマージすることができるソフトウェアだ。 AIR製であるためにTextFlowはWindowsはもちろん、Mac OSXでも動作する。TextFlowへのユーザ登録が必須であり、確認メールに記載されたURLをクリック後、画面下にあるライセンスキーが表示されるの
「Scala で diff を書いてみた」[1] という記事に触発されて [2] の論文や [3] の解説を読んで diff のアルゴリズムを勉強して自分なりに Scala で実装してみました。 これは [2] で "An O((M+N)D) Greedy Algorithm" と呼ばれているほうの実装で、論文の後半では改良についても書いてあるけどそちらは読んでいません。 私なりに工夫をした部分は全体的に副作用を排除した所とエディットグラフの格子点をオブジェクトとして表現した点です。 元論文の擬似コードで "a number of simple optimizations are employed" とされている部分は可読性の観点から取り入れませんでした。ただ元論文が「D回の編集で到達する(対角線 k 毎の)最遠点の集合」を配列で管理しているのを Set で管理するようにしたのは本当はよろ
Unix系のシステムに生まれ変わったというのにMac OSX向けのSVNクライアントは決定的なものがないように思える。開発では当たり前のように使われているだけに残念な点だ。 特に開発が進んで、更新箇所をチェックする際に特化したSVNクライアントがこちらだ。 今回紹介するフリーウェアはDiffly、差分チェックの手軽なSVNクライアントだ。 Difflyはチェックアウトの機能がないようなので、Subversionフロントエンドという訳ではない。起動し、ワーキングコピーを指定するとその中の変更されているファイルを表示する機能がある。 ファイルを選択すると即座にDiffを表示してくれる。2ペインの差分ではないので多少見づらいかも知れないが(元々のDiffはこれだが)、気になる場合はコンテクストメニュー(右クリック)からFileMergeを選択すれば良い。 差分チェックに特化しているので、これはこ
何ですかこれは? 二つのシーケンスのLongest Common Subsequence, Longest Common Subsequence Distance及びShortest Edit Scriptを求めるクラス。 Subversionのコードを、C++に移植したものです。 アルゴリズムは、"An O(NP) Sequence Comparison Algorithm" (Sun Wu et al.)に述べられているものと同一で、計算量は最悪でO(NP)、平均的にはO(N+PD)です。ただし、N=二つのシーケンスの長さの和、P=D/2-Δ/2、D=LCS距離、Δ=二つのシーケンスの長さの差です。 ここでいうLCS距離(longest common subsequence distance)は、あるシーケンスを別のシーケンスに変化させるために必要な、シンボルの挿入及び削除操作の最小
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く