ファイルシステム全体のさまざまな主要な構成ファイルの内容に関して、さまざまなサーバー間の「違い」をグラフィカルに表す単純な Python Web ベースのアプリを作成することを任されました。
1. 高レベルのヒートマップ
概要を把握するために、各システムのヒートマップを作成することを考えていました (例: http://www.jjguy.com/heatmap/ )。各システムはゴールデン ソース イメージ (元のイメージ) と比較され、色を使用してこのイメージとの差異の程度を表します。
ファイルシステムは xy 軸にマッピングされるため、各システムのヒートマップ上の同じ座標は同じファイルを表します。
ここでの最初の質問は、ファイルシステムを xy 座標にマッピングするための適切なアルゴリズムについて何かアドバイスはありますか? 各サーバーは多かれ少なかれ同じファイルシステム階層を持っている必要がありますが、これは必ずしも真実ではない可能性があり、不足しているファイル/ディレクトリ、またはおそらく追加されたファイル/ディレクトリを表す方法を見つける必要があることに注意してください. それが可能かどうかはわかりませんが、同等のファイル/ディレクトリを各システムマップ上の一致する (または少なくとも同様の) xy ポイントにマッピングするという最初の要件があります。ここに新しいアプローチ/アルゴリズムはありますか?
次に、各ファイル間の変更の程度 (行数?) を定量化し、これをヒートマップに渡す方法が必要です。たとえば、10 行が変更された 1 つのファイルと、それぞれ 1 行が変更された 10 個のファイルを区別する必要があることに注意してください。どちらも影響が異なるためです。
2.ドリルダウンしてファイルの差分を表示する
個々のファイル/ディレクトリにドリルダウンして、それらの間の変更を確認する機能を webapp で提供することも望んでいます。
Kdiff3 と Meld を組み合わせて視覚的なコードの差分を使用してきましたが、Meld の表示が変化する方法に非常に感銘を受けました。
http://meld.sourceforge.net/meld_file1.png
視覚的な差分メカニズムを独自に提供するスタンドアロンの Web ライブラリを見つけることができなかったようです。私が見つけた最も近いのは jsdifflib ( http://snowtide.com/jsdifflib ) ですが、Meld のようなものの機能 (または美学) と一致していないようです。ここで何かアドバイスはありますか?
(Revisionist は実際にはクールに見えます - http://benfry.com/revisionist/ - しかし、私はそのための公開コードを見つけることができないようです)。
乾杯、ビクター