代码之家  ›  专栏  ›  技术社区  ›  Ola Eldøy

将源代码管理中的更改提交到多个分支的实用方法

  •  7
  • Ola Eldøy  · 技术社区  · 17 年前

    使用源代码管理时的一个常见场景是拥有一个开发分支和版本化的发布分支。我们使用CVS,HEAD作为开发分支,而当前版本的产品则使用一个名为release-6-2的分支。

    新特性的开发只进入开发分支,但是bug修复有时必须同时进入开发分支和当前版本分支。这有时会变得相当乏味,所以我正在寻找切实可行的方法来实现这一点。

    当要提交的文件在两个分支上同步时,我特别想寻找一个快速的“提交到这些分支”解决方案。

    (我们使用CVS作为我们的源代码控制系统,因此任何特定于CVS的答案都很好。然而,看看其他源代码控制系统是否能提供更好的方法也很有趣。

    2 回复  |  直到 17 年前
        1
  •  9
  •   ewalshe    17 年前

    将修复程序应用到所需的最旧版本分支。然后将更改合并到下一个发布分支,依此类推,直到您从上一个发布分支合并到头部。

    假设您的产品的最旧版本是1.0,您还有1.1和1.5版本。下一版本的新功能正在添加到头部。如果在1.0中发现错误,则将修复应用于1.0分支。从1.0合并到1.1分支。从1.1合并到1.5分支,最后从1.5分支合并到头部。

    从一个分支合并到另一个分支比手动将修复应用到每个分支要好。

    如果更改为使用Subversion,则从一个分支合并到另一个分支会更容易。Eclipse的subversion工具将跟踪您以前合并的修订,大大简化了在两个分支之间重复合并的任务。

    从CVS更改为Subversion很容易(ish)。你不会是第一个采取这种行动的人。

        2
  •  4
  •   orip    17 年前

    正如awalshe所说,最好在分支之间合并。要选择合并,请使用中描述的方法 Pragmatic Version Control using CVS

    在分支标记中( PRE_FOO POST_FOO )。然后,在主干中,使用标记合并:

    cvs up -j PRE_FOO -j POST_FOO
    

    在SVN中,分支之间的合并更容易、更安全,而且将整个CVS历史转换为SVN非常简单-请参阅 cvs2svn . 您应该将SVN 1.5或-与早期的SVN版本一起使用- svnmerge .