Mercurial:如何使每个版本分支

时间:2012-06-13 07:43:55

标签: version-control mercurial branching-and-merging

当我们发布新版本时,我需要建立一个时间点分支。

所以我对所有开发都有默认分支,每次向服务器发布新版本时都会分支V1,V2等。

所以,如果我有默认的开发分支。 V1位于Live服务器上。 V2位于测试服务器上。

如何处理以下情况:

  • 在V1中发现了一个错误,更改需要进入V1,V2和默认值?

  • V2在某个时间点生成并转到测试服务器,默认情况下连续开发多个功能。在对V2进行一些测试之后,该功能未完成,默认情况下的一些变更集应该在V2中合并 - 但不是所有的变更集?

1 个答案:

答案 0 :(得分:5)

通常的方法是找到引入错误的变更集(在V1的分支点之前),并将修复程序作为该变更集的子项提交。这将引入一个新头,然后您可以将其合并到您想要修复的分支中,在本例中为V1,V2和默认值。

此方法称为“daggy fixes”。

或者你也可以在一个分支上修改它(比如默认),然后使用graft命令将它挑选到其他分支上。但这并不是很好,因为变更集会出现三次,并且如果你再次将其中两个分支合并在一起,可能会导致合并问题。