Mercurial:如何使每个版本分支

Mor*_*yhr 1 version-control mercurial branching-and-merging

当我们发布新版本时,我需要做一个时间点分支.

因此,我对所有开发都有默认分支,并且每次向服务器发布新版本时都会分支V1,V2等分支.

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

我该如何处理以下场景:

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

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

Lau*_*lst 5

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

这种方法称为" daggy fixes ".

或者,您也可以将其固定在一个分支上(例如,默认),然后使用该graft命令将其选择到其他分支上.但这并不是那么好,因为变更集会出现三次,并且如果你再次将两个分支合并在一起,可能会导致合并问题.