如何合并多个补丁文件?

13
我们使用Subversion,在每次检入时,会创建一个包含所有差异的补丁文件。对于同一问题/缺陷,可能会有多个检入,导致我们拥有多个补丁文件。为了查看问题的汇总更改,所有补丁文件都必须合并。是否有方法可以做到这一点?
或者解决相同问题的另一种方法是:在Subversion中是否有一种方法可以获取作为特定注释部分的所有更改的组合差异?例如:
检查注释:“123:第一次更改” 检查注释:“123:第二组更改” 检查注释:“123:第三次更改”...
有没有办法获取所有具有前缀123的注释的组合差异?

可能是在Subversion中查看多个提交的合并差异?的重复问题。 - user2508324
更改是否影响了唯一的文件?还是多次影响了同一源文件? - jww
2个回答

15

1
Combinediff 只有在第二个 diff 的上下文行在应用第一个 diff 后仍然有效时才能工作。因此,如果两个 diffs 都针对同一基线,并且它们触及相邻的行,则会拒绝某些更改。 - Pr0methean
如何使用combinediff?我们可以在windows上使用它吗? - ashish
1
从http://cyberelk.net/tim/data/patchutils/stable/下载最新版本,解压缩,执行`./configure && make && make install,然后您就可以运行combinediff patch1 patch2`。 - erwaman

3
从第一个changeset之前的修订版本开始创建一个新分支。 在新分支中按顺序合并问题的每个changeset。 获取新分支起点和最终结果之间的差异。
(如果您使用基于问题的分支,则会自动获得上述情况)。
Mercurial有一个很好的扩展来处理补丁集合,即mq扩展。它又基于quilt(http://savannah.nongnu.org/projects/quilt),这是一个设计用于将补丁堆叠在一起的系统。

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