1

無視する必要のある非表示の.svnフォルダーを含む2つのほぼ同一のフォルダーを比較しています。一部のファイルにパッチが適用されているため、変更されていない一致するファイルを再度チェックせずに、違いを比較するためにフォルダーを継続的にすばやく比較したいと思います。

編集:非常に多くのオプションがあるため、繰り返し比較を行う場合、他のソリューションは実際には実行可能ではないため、前の比較からの知識を明確に活用するソリューションに興味があります。

4

6 に答える 6

8

多少のお金を払っても構わないと思っているなら、Beyond Compare は非常に強力な差分ツールであり、フォルダ ベースの差分を行うことができます。

比較を超えて

于 2009-01-20T21:40:56.293 に答える
7

私は個人的にWinMergeを使用していますが、非常に便利です。svn ファイルを除外するフィルターがあります。Linuxでは Meldを好みます。

于 2009-01-20T21:39:47.967 に答える
4

1つのオプションは、を使用することrsyncです。何かのようなもの:

rsync -n -r -v -C dir_a dir_b

この-nオプションはドライランを実行するため、ファイルは変更されません。 -r再帰的な比較を行います。オプションで、。を使用して冗長モードをオンにします-v。(-i代わりに、変更を項目化するために使用できます。) use-vなどの一般的に無視されるファイルを無視します。.svn/-C

マンページdiffを読んでいるので、これは単純なものよりも速いはずです。rsync

Rsyncは、サイズまたは最終変更時刻が変更されたファイルを検索する「クイックチェック」アルゴリズム(デフォルト)を使用して転送する必要のあるファイルを検索します。他の保存された属性の変更(オプションで要求された場合)は、ファイルのデータを更新する必要がないことがクイックチェックで示されたときに、宛先ファイルで直接行われます。

「クイックチェック」アルゴリズムはファイルの内容を直接調べないため、だまされる可能性があります。その場合、-c代わりにチェックサムを実行するオプションが必要になる場合があります。通常よりも速い可能性がありますdiff

さらに、ある時点でディレクトリを同期することを計画している場合、これはそのジョブにも適したツールです。

于 2009-01-20T21:43:38.443 に答える
1

Linuxまたはそのバリアントを使用している場合は、次のことができるはずです。

prompt $ diff -r dir1 dir2 --exclude = .svn

-rは、再帰的なルックアップを強制します。空白などを無視するためのスイッチがたくさんあります。

于 2009-01-20T21:46:45.487 に答える
1

誰にでもできるわけではありませんが、タイムスタンプを比較することはできます。

于 2009-01-20T21:41:39.180 に答える
1

トータルコマンダーを使おう!すべてのクールな開発者がそれを使用しています:)

于 2009-01-20T21:42:32.330 に答える