是否可以追溯创建补丁?我们使用的 Tortoise SVN 客户端为我们提供了创建补丁的选项,而不是(或期间)提交。
我想使用主干进行修复,将其签入并让构建服务器运行其所有测试和指标以确认修复是可以接受的。然后,我希望能够选择一些修订版(如果第一次尝试修复它只是让我们在那里的一部分)并从已更改的文件中创建一个补丁文件。
然后我可以获取补丁并将其应用到其他几个分支。这可能吗?
是否可以追溯创建补丁?我们使用的 Tortoise SVN 客户端为我们提供了创建补丁的选项,而不是(或期间)提交。
我想使用主干进行修复,将其签入并让构建服务器运行其所有测试和指标以确认修复是可以接受的。然后,我希望能够选择一些修订版(如果第一次尝试修复它只是让我们在那里的一部分)并从已更改的文件中创建一个补丁文件。
然后我可以获取补丁并将其应用到其他几个分支。这可能吗?
Show Log,选择revisions,右键,“show Unified diff”。
如果路径有问题,可以分别在每个文件上显示差异
如果要比较来自不同分支的两个文件,还可以在 Windows 上使用 WinMerge:
通过这种方式,您可以为来自不同分支的已提交文件创建补丁。
我倾向于使用svn diff
命令行来创建补丁。因此,可以使用以下示例,但它们依赖于您知道修订号 - 这应该不难确定。
出于此答案的目的,我们假设以下内容:
https://mySvnServer/myRepository/trunk
.C:\Path\To\Patches\
.创建仅修订版 1234 的补丁。注意-c 1234
。
svn diff -c 1234 https://mySvnServer/myRepository/trunk > "C:\Path\To\Patches\1234.patch"
在您的提交和头部(最新提交)之间创建所有修订的补丁。注意-r 1234:HEAD
。
svn diff -r 1234:HEAD https://mySvnServer/myRepository/trunk > "C:\Path\To\Patches\1234_head.patch"
据我所知,没有一种单行方法可以从多个不连续的修订号创建补丁而不创建分支,单独合并所需的修订,然后执行 svn diff(类似于上面)来创建一个补丁。