从标签创建补丁分支并与trunk合并

时间:2012-04-11 14:47:03

标签: svn branching-and-merging

现在我们在分支机构中开展工作。这些被合并到主干并在其中的功能完成时被终止。因此 trunk 始终包含最新的稳定代码。

当主干准备好发布时,会在该给定点从主干创建标记。 现在,我们如何才能最好地处理我们需要为先前版本创建补丁的情况?

我们有一个标记标记该版本。但是trunk现在包含更多新功能。 如果我们从旧的标记创建分支,我们如何干净地将修补程序修复到我们的主干中,并使用新标记

我可以标记从最初的发布标记创建的分支重新整合合并 分支使用主干?或者这会造成问题吗?我觉得它可能会混淆Subversion。

这张“图片”试图说明流程。

Work branches /-- itter. 1.0 --\      /- 2.0 -\           /------ 3.0 ----------\
             /                  \    /         \         /                   /   \
    ------------trunk----------------------------------------------------------------------  
                                  |                | v2.0 tag              /      | v3.0 tag  
                                  |                                       /
                                  | V1.0 tag----------\                  /
                                                       \-- Branch 1.1 --/
                                                                        |
                                                                        | V1.1 tag

请注意,即使标签和分支在同一行上,它们实际上也位于标准的主干,分支,标签文件夹布局中。

注意:工作分支不必与给定版本有任何关系。我只是将它们命名为1.0等。但它们可以命名为 foo bar 或其他。

2 个答案:

答案 0 :(得分:2)

更常见的方法是保持发布分支(1.x,2.x,...)打开并从那里标记特定版本。

当您停止支持该版本时,只关闭分支。

        1.0     1.1         2.0     2.1         (release tags)
       /       /           /       /
   /----------- 1.x       /----------- 2.x      (release branches)
  /                      / 
----------------------------------------------- trunk

将修复从这样的发布分支合并到主干是安全的,无论该分支从哪里分支(主干,标记或其他分支)。

答案 1 :(得分:1)

我们现在一直在使用标记来自trunk的版本的方法,并且如果一段时间需要一个补丁并且它已经与单个和多个团队一起工作,则返回从该标签创建一个分支。