乌龟SVN应用补丁错误

16

我正在尝试应用补丁,但是我得到了一个空白的错误信息(里面没有任何文本或其他东西)。 我有最新版本的TortoiseSVN。

我尝试应用补丁时遇到了空白错误消息,这个错误消息没有任何文本内容。我使用的是最新版本的TortoiseSVN。


欢迎来到SO,Michael!你的问题中没有太多信息。你能提供更多细节吗?如果不能,最好去Tortoise的网站上询问。 - AlG
2020年了,仍然会出现这个错误,惊讶地发现Tortoise在这么多年后还没有修复它! - thecoolmacdude
如果你得到了一个空白窗口,也可能是因为你没有通知弹出的浮动窗口,该窗口包含补丁中包含的文件的文件名。在该浮动窗口中有一个按钮可以修补所有文件。 - Anders Lindén
6个回答

10

我曾经也遇到过同样的问题。如果你是从修订版中创建补丁,使用“显示作为统一差异的更改”功能,请检查补丁文件中的路径,确保如下这个路径是正确的:

Folder/FileName.cs

但是如果是绝对路径,例如以下路径,则可能会出现问题:

c:/Folder/FileName.cs

只需将绝对路径转换为相对路径即可。


1
Trac 0.11版本的Udiff文件具有绝对路径,导致在TortoiseSVN->应用补丁时出现空白错误对话框。类似的解决方法是(使路径相对于您的工作目录根目录)。 - Magicianeer
我已经按照@Magicianeer的建议进行了修复。打开文件并将所有c:/实例替换为/,差异文件应该可以正常工作。 - CodingBarfield
感谢@Ivan Jovovic提供正确的答案。你为我节省了很多时间 :) - Samvel Siradeghyan

6
看这里,似乎有三个可能的根本原因导致空的错误svn补丁问题:
  • 补丁文件为空(或者是无效的,所以补丁数据看起来是空的)

  • 补丁没有应用到正确的目录(auto-dir-search现在在主干上工作)

  • 补丁文件使用绝对路径而不是相对路径(主干已经自动剥离了这样的路径)

第一个可能不是你的问题,最可能的是你应该使用相对路径而不是绝对路径。


3
我经常看到这个提示。通常是因为我在Windows Explorer中右键单击以获取Tortoise日志。当您使用此上下文中的“将差异显示为统一的差异”时,生成的补丁将包含相对于您的计算机的绝对位置,例如“c: \ source \”。如果您尝试将此补丁应用于另一个目录,则会失败。
解决方案是使用Tortoise的存储库浏览器,然后从该上下文使用“显示日志”菜单。生成的补丁将具有相对位置,并且您可以在匹配相对路径的任何地方应用这些补丁。

0
我也遇到了这个问题,并通过更改补丁文件中的路径来解决它。在我的情况下,我只需要修补一个文件。问题出现的原因是,在我的情况下,我从review-board创建了补丁文件,该文件创建具有完整链接路径的文件。INDEX /home/pushpendra/...something/file.c (revision some_rev)
所以我用以下行替换了这一行:
INDEX file.c (revision some_rev),然后右键单击此文件,然后应用补丁。

0

我曾经遇到过相同的问题。

问题出在:

  • 我检出了:some/crazy/path
  • 补丁是针对:this/is/some/crazy/path

不知怎么的,Tortoise 无法应用此补丁,所以我检出了一个更高级别的版本,然后它就成功了。


0

如果补丁创建的版本和应用补丁的版本不同,则无法应用补丁。


那不可能正确。 - Anders Lindén

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