使用TortoiseSVN创建补丁时,重复文件的差异问题

4
我有一个已经存在的SVN分支,使用TortoiseSVN:
1. 我使用SVN Checkout将分支获取到本地计算机。 2. 我将一些代码行合并到现有项目中。 3. 我为新编写的代码创建了新的子文件夹。 4. 我使用TortoiseSVN->Add添加所有新目录和文件。 5. 最后,我转到TortoiseSVN->Create Patch,并将文件保存为myChanges.patch。
当我打开补丁时,几乎所有源文件的差异都列出了3-4次。
如何避免在通过TortoiseSVN创建补丁时在我的diff文件中有重复条目?
2个回答

7

这是一个老问题,但我找不到答案。

我遇到了相同的问题,并发现问题出在我创建补丁的方式上。重现步骤如下:

  • 创建新文件夹
  • 在文件夹中添加一个或多个文件
  • 创建补丁并选择包含文件夹和其中的文件

然而,如果我只选择文件夹创建补丁,则生成的补丁文件将包含文件夹中的所有文件。如果我不想包含所有文件,则仅选择单个文件并跳过文件夹。两种方式都会产生一个只包含文件一次的补丁文件。


1
这对我来说似乎是个漏洞。为什么我要在补丁文件中多次使用该文件?漏洞在1.10.2中仍然存在。我的解决方法是像某种书呆子一样在命令行上使用svn。 - Andrew
这就是答案! - bluedog

2
在与许多同行交谈后,我意识到我不是唯一遇到这个问题的人。当我问他们如何解决它时,他们告诉我当发生这种情况时手动编辑差异文件。因此,我编写了一个简单的 GUI 工具来为我们完成这项工作,代码和可执行文件都可以从 GitHub 下载:https://github.com/Kakarot/TortoiseDiffCleaner/releases。您只需将.diff.patch文件拖放到用户界面上,它就会生成每个文件的干净版本,而没有重复的条目。

好工具,但最终会删除不同路径下同名文件。有什么解决办法吗? - Gaurav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接