在区分文件夹时,如何检测移动或重命名的文件?

时间:2011-11-15 19:08:59

标签: diff

我正在使用diff工具比较两个文件夹。我尝试了一些不同的diff工具,但现在我正在使用WinMerge。有许多文件显示为右侧或左侧唯一,例如:

在右边我们有:/bar/some_organized_characters.txt

在左侧,我们有:/foo/some_similar_organized_characters.txt

文本文件可能略有不同,但大致相似。我希望大多数合并/差异工具中都存在一个工具,它可以告诉你这些文件可能是“相同的”(意味着它们具有相同的基础),但文件已被移动,重命名和稍微修改。

我特别想做的是“供应商合并”。我们有一些定制软件,我们希望将最近正式版本的更改与我们所做的更改合并。许多文件已经在最新的正式版本中发布,并且手动查找每次移动/重命名都很困难。

2 个答案:

答案 0 :(得分:2)

使用版本控制工具检查更改。只需将结构作为初始提交提交。然后用新版本覆盖结构并提交。补丁视图将显示已移动的项目。我很容易用Git做到这一点。这些工具用于查看某些内容是如何变化的,并将深入研究文件的内容。实际上,在git中,您可以设置文件中更改百分比构成移动和更改的阈值,而不是删除和创建。

答案 1 :(得分:0)

我认为diff不可能做到这一点(我在联机帮助页中找不到)。

但是,git diff默认情况下会检测到此错误,并且可以创建与git apply相似的,与patch一起应用的补丁。您可以使用--no-index(请参阅Diffing between two entire directories/projects in hg or git?)在任意目录中使用它,而不仅仅是回购协议。