如何从两个补丁之间的差异创建一个补丁

5
我已经对我的本地SVN工作副本进行了修改,创建了一个补丁,并将该补丁提交给存储库维护者。
存储库维护者合并了该补丁,但是我访问该服务器的权限还需要等待一周(我的VPN令牌过期了,获取新的需要一些时间),因此在它恢复正常之前我无法更新我的工作副本。
与此同时,我对我的本地工作目录进行了进一步的修改,并创建了第二个补丁。
如何将两个补丁之间的差异作为.patch文件获取,以便发送给存储库维护者应用我的最新更改?
或者,是否有一种方法可以在离线状态下将SVN更新应用于我的本地存储库(例如通过电子邮件发送文件)。
注意:我使用TortoiseSVN在Windows上操作,但会尝试任何能实现需求的工具。
2个回答

1
如果您可以访问Linux(即使使用WSL),您可以简单地创建另一个补丁,然后使用interdiff命令显示两个diff文件之间的差异。
interdiff patch1 patch2

在Ubuntu中,可以使用以下命令安装interdiff
sudo apt install patchutils

0

我相信你无法通过TortoiseSVN的GUI实现你的目标。我现在没有适当的环境,但这是我会尝试的:

  • 复制完整的工作副本,并将其命名为old
  • 还原old工作副本中的更改。
  • 将现有的补丁应用于“old”工作副本。
  • 从命令提示符运行svn diff命令,以针对这两个工作副本。
  • 如果需要,编辑生成的.diff文件,使其看起来表示同一工作副本的两个版本之间的差异,而不是两个不同的工作副本之间的差异。

TortoiseSVN的新版本在命令提示符中提供了svn命令。我希望你也可以使用它。


不幸的是,这并不起作用。SVN diff命令看到两个文件夹具有相同的版本,只会将待处理的更改转储到diff文件中。 - Josh

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