【问题标题】:How to Merge multiple patch files?如何合并多个补丁文件?
【发布时间】:2009-11-30 10:18:56
【问题描述】:

我们使用 subversion,并且在每次签入期间,脚本都会创建一个包含所有差异的补丁文件。现在对于同一个问题/缺陷,可能会有多个签入,我们最终会得到多个补丁文件。现在要查看问题的合并更改,必须合并所有补丁文件。有没有办法做到这一点?

或者解决同样问题的另一种方法是:在颠覆中是否有一种方法可以将所有更改的组合差异作为特定评论的一部分完成?例如:

签入评论:“123:第一次更改”
签入评论:“123:第二组更改”
签入评论:“123:第三次更改”..

有没有办法获得评论前缀为 123 的所有更改的组合差异?

【问题讨论】:

标签: svn scripting diff patch


【解决方案1】:

combinediff from patchutils 可以为您组合差异。

(无耻借用this previous SO question。)

【讨论】:

  • Combinediff 仅在第二个差异的上下文行在应用第一个差异之后仍然有效的情况下才有效。因此,如果两个差异都针对相同的基线,并且它们接触相邻的行,那么某些更改将被拒绝。
  • combinediff怎么用,windows上可以用吗?
  • cyberelk.net/tim/data/patchutils/stable下载最新版本,解压,./configure && make && make install,然后就可以运行combinediff patch1 patch2了。
【解决方案2】:

从第一个变更集之前的修订开始创建一个新分支。 在新分支中,按顺序合并问题的每个变更集。 在新分支的开始和最终结果之间进行比较。

(如果你做基于问题的分支,你会自动得到上述情况)。

Mercurial 有一个很好的扩展来处理补丁集合,即 mq 扩展。反过来,它基于被子 (http://savannah.nongnu.org/projects/quilt),这是一个旨在将补丁相互堆叠的系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 2014-12-27
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多