如何比较Linux中的两个源代码树?

时间:2009-04-22 11:58:24

标签: diff

我有两个包含源文件的目录,这些目录是我通过文档很少继承的项目。如何比较两个目录以查看差异。感谢。

5 个答案:

答案 0 :(得分:54)

试试这个:

diff -Naur dir1/ dir2/
  • -u选项使输出为a 更容易阅读。
  • -r选项递归所有 子目录
  • -N-a选项确实如此 只有你想创造才有必要 补丁文件。

答案 1 :(得分:35)

您可以尝试MELD: http://meld.sourceforge.net/ 这是一个很棒的视觉差异工具; - )

答案 2 :(得分:26)

diff -u -r dirA dirB

将显示dirA和dirB中文件之间的统一递归差异

答案 3 :(得分:6)

你可以在shell中使用diff命令。或者安装kdiff3

之类的工具

答案 4 :(得分:1)

比较目录的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

这将在第一个文件中用path2替换path1的所有实例,现在你的diff应该只显示差异。