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

时间:2014-05-19 09:03:41

标签: svn tortoisesvn

我已在本地SVN工作副本中进行了修改,创建了一个补丁,并将该补丁提交给了存储库维护者。

存储库维护者合并了该补丁,但是我对该服务器的访问又停止了一周(我的VPN令牌已过期并且获得一个新令牌需要一些时间)所以直到它再次备份我无法更新我的工作副本。

与此同时,我对本地工作目录进行了进一步修改,并创建了第二个补丁。

如何将两个补丁之间的区别作为.patch文件发送给repo维护者以应用我的最新更改?

或者,有没有办法可以在离线状态下将SVN更新应用到我的本地仓库(例如通过电子邮件发送给我的文件)。

注意:我在Windows上,使用TortoiseSVN,但会尝试任何工具,让我到达我需要的地方。

2 个答案:

答案 0 :(得分:0)

我很确定你的目标无法通过TortoiseSVN的GUI实现。我现在没有适当的环境,但这就是我想要的:

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

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

答案 1 :(得分:0)

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

interdiff patch1 patch2

在Ubuntu中,可以使用以下命令安装interdiff

sudo apt install patchutils