無視する必要のある非表示の.svnフォルダーを含む2つのほぼ同一のフォルダーを比較しています。一部のファイルにパッチが適用されているため、変更されていない一致するファイルを再度チェックせずに、違いを比較するためにフォルダーを継続的にすばやく比較したいと思います。
編集:非常に多くのオプションがあるため、繰り返し比較を行う場合、他のソリューションは実際には実行可能ではないため、前の比較からの知識を明確に活用するソリューションに興味があります。
無視する必要のある非表示の.svnフォルダーを含む2つのほぼ同一のフォルダーを比較しています。一部のファイルにパッチが適用されているため、変更されていない一致するファイルを再度チェックせずに、違いを比較するためにフォルダーを継続的にすばやく比較したいと思います。
編集:非常に多くのオプションがあるため、繰り返し比較を行う場合、他のソリューションは実際には実行可能ではないため、前の比較からの知識を明確に活用するソリューションに興味があります。
多少のお金を払っても構わないと思っているなら、Beyond Compare は非常に強力な差分ツールであり、フォルダ ベースの差分を行うことができます。
1つのオプションは、を使用することrsync
です。何かのようなもの:
rsync -n -r -v -C dir_a dir_b
この-n
オプションはドライランを実行するため、ファイルは変更されません。 -r
再帰的な比較を行います。オプションで、。を使用して冗長モードをオンにします-v
。(-i
代わりに、変更を項目化するために使用できます。) use-v
などの一般的に無視されるファイルを無視します。.svn/
-C
マンページdiff
を読んでいるので、これは単純なものよりも速いはずです。rsync
Rsyncは、サイズまたは最終変更時刻が変更されたファイルを検索する「クイックチェック」アルゴリズム(デフォルト)を使用して転送する必要のあるファイルを検索します。他の保存された属性の変更(オプションで要求された場合)は、ファイルのデータを更新する必要がないことがクイックチェックで示されたときに、宛先ファイルで直接行われます。
「クイックチェック」アルゴリズムはファイルの内容を直接調べないため、だまされる可能性があります。その場合、-c
代わりにチェックサムを実行するオプションが必要になる場合があります。通常よりも速い可能性がありますdiff
。
さらに、ある時点でディレクトリを同期することを計画している場合、これはそのジョブにも適したツールです。
Linuxまたはそのバリアントを使用している場合は、次のことができるはずです。
prompt $ diff -r dir1 dir2 --exclude = .svn
-rは、再帰的なルックアップを強制します。空白などを無視するためのスイッチがたくさんあります。
誰にでもできるわけではありませんが、タイムスタンプを比較することはできます。
トータルコマンダーを使おう!すべてのクールな開発者がそれを使用しています:)