2011-01-03 4 views
7

ビルドプロセスが変更されているため、2つの.earファイルの内容を完全に比較する必要があります。これは、.earの各アーカイブを再帰的に比較することを意味します。これらの.earファイルには、アーカイブを含むアーカイブがあります。2つの.earファイルを再帰的に比較するためのツールが必要

私はBeyond Compare and Archive Analyzerを見てきましたが、一度に1レベルしか行いません。手動で各アーカイブにドリルダウンする必要があります。私はもっ​​と自動のものを探しています。

EclipseとUltraCompareは、私が望んでいない2つの.earsのバイナリ比較を行います。

このようなツールはありますか?

+0

私はBeyond Compareのサポートに連絡することをお勧めします。彼らは私の経験ではとても反応があり、助けてくれるかもしれません。 – TrueWill

答えて

3

私の問題は、.earファイルを再帰的に拡張するだけのことではありませんでした(Javaクラスを作成して再帰を単純化しました).earファイルを展開したら、チェックするディレクトリ変更の場合タイムスタンプ以外が変更された場合は、ビルドが別のバイナリを生成していることがわかります。

第2の問題は、ビルドプロセスで何百もの.xmlファイルが生成され、その後のビルドで要素が異なる順序でそれらの.xmlファイルが再生成されることです。なぜ私は分からない。何も変更せずにバックツーバックビルドで作成された2つの.earファイルを展開すると、結果として得られるディレクトリのdiffは機能的に同等であってもdiffを含む何百もの.xmlファイルを表示します。

.earファイルを再帰的に展開するだけでなく、diffを実行して、特定のディレクトリで.xmlファイルを除外する必要があります。私はCygwinのdiffがこれを行うだろうと思ったが、--excludeスイッチは、任意のパス情報を認識しません:

Cygwin diff won't exclude files if a directory is included in the pattern

私はこれに対する解決策が見つからない場合は私が別のJavaクラスを記述します各ディレクトリ内の単一のレベルのdiffを実行し、適切なディレクトリ内の.xmlファイルを除外するディレクトリ構造全体をステップ実行します。

私はホイールを再発明していると感じていますが、今はホイールを見つけることができません。

+6

一時的なGitリポジトリを使ってdiffingを行うのはどうですか? 最初の文字列を抽出します。耳のファイルを追加してすべてをチェックインすると、 は2番目の.earファイルを抽出するので、Gitにdiffingをさせることができます。 –

+0

ありがとうございました。ニースハック。私は耳、瓶、戦争のモジュールを展開しました。すべてのファイルをチェックインし、git diffを使いました。 –

1

これ以外ではSession Settingsダイアログに入り、HandlingタブにはArchive Handlingオプションがあります。 As folders alwaysに設定されている場合、アーカイブはフォルダと同様に扱われるため、完全に再帰的です。

+0

それは再帰的に動作するようですが、出力はありません。私が得るのはタイムスタンプで、「成功したアイテムは44410アイテムを比較しました.35.9秒で完了しました」 2つの.earファイルにはいくつかの違いがありますが、報告されません。アーカイブ構造をドリルダウンすると、違いのあるファイルが表示されます。私は手動でツリー全体にドリルダウンすることなくdiffレポートを取得する必要があります。 –

+0

あなたがスクリプトを書いていると仮定すると、ファイルのリストがほしいならば、 'FOLDER-REPORT'コマンドを使います。ファイル内の詳細を 'EXPAND ALL'、' DIFF.FILES NEWER.FILES OLDER.FILES ORPHAN.FILES'、そして 'FILE-REPORT'のように使いたい場合。 FILE/FOLDER-REPORTには、ヘルプの対象となる追加パラメータが必要です。結果のレポートをHTMLまたはプレーンテキストファイルに書き込むことができます。 –

+0

私はBCスクリプトを書いていませんでした。 .earファイルとそれに含まれるすべてのアーカイブを再帰的に展開するJavaプログラムを最終的に作成することにしました。 –

5

は、非常に優れたオープンソースソリューションを提供します。

+0

zipdiffはいいですが、MS Windowsのパスが必要であるため、Linuxでうまく動作しません – onknows

関連する問題