2011-11-15 66 views
1

我使用diff工具比较两个文件夹。我已经尝试了一些不同的差异工具,但现在我正在使用WinMerge。有许多文件,其中显示为独特的右侧或左侧,例如:当区分文件夹时,如何检测移动或重命名的文件?

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

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

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

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

回答

1

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

+0

我还没有使用Git,SVN也做同样的事情吗?现在SVN只是显示原始文件被删除,而新文件是新的,这意味着我无法比较文件内容如何改变,因为SVN没有看到它的移动/重命名。 – Buttons840

+0

SVN存在问题,因为它基于URL或基于快照。我会建议快速下载并安装git来执行此操作。没有服务器是必要的,因为它只在本地工作而已。您需要知道的命令是'git init','git add -A'(添加所有更改),'git commit -m'一些消息''和'git status'。运行init,使当前目录和所有子目录都成为一个存储库。添加一切,提交。删除.git文件夹以外的工作文件夹。把新版本放在那里,运行git add,然后运行git status。它应该告诉你什么改变了。 –

+0

Mercurial或Bazaar(或任何其他VCS)如何,它们是否具有与Git类似的功能? – Buttons840

相关问题