web-dev-qa-db-ja.com

Linuxで2つのソースツリーを比較するにはどうすればよいですか?

私は、ドキュメントとしてほとんど継承せずに継承したプロジェクトのソースファイルを含む2つのディレクトリを持っています。両方のディレクトリを比較して、違いを確認するにはどうすればよいですか。ありがとう。

43
freakwincy

MELDを試すことができます: http://meld.sourceforge.net/ これは素晴らしい視覚的な差分ツールです;-)

36
manatlan

これを試して:

diff -Naur dir1/ dir2/
  • -uオプションを指定すると、出力が少し読みやすくなります。
  • -rオプションはすべてのサブディレクトリを再帰します
  • -Nおよび-aオプションは、パッチファイルを作成する場合にのみ必要です。
54
jcrossley3
diff -u -r dirA dirB

DirAとdirB内のファイル間の統一された再帰的な差分を表示します

26
Bert Huijben

シェルでdiffコマンドを使用できます。または kdiff のようなツールをインストールします

6
Decio Lira

ディレクトリを比較するためのdiffコマンドは、違いがあることを知っていたときに、違いがないことを知らせ続けました。

直接diffを使用する代わりに、md5sumsのソートされたリストを使用して、それらのファイルをdiffと比較しました。

find /path1/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path1.log
find /path2/dir/ -type f -exec md5sum {} + | awk '{print $2 $1}' | sort >! path2.log
gvimdiff path1.log path2.log

パスの最初の部分が頭痛の種である場合は、変更します。 Path1ウィンドウを選択し、次のように入力します。

:%s|path1|path2|g

これにより、最初のファイルでpath1のすべてのインスタンスがpath2に置き換えられます。これで、差分には違いのみが表示されます。

1
nikc