Mor*_*yhr 1 version-control mercurial branching-and-merging
当我们发布新版本时,我需要做一个时间点分支.
因此,我对所有开发都有默认分支,并且每次向服务器发布新版本时都会分支V1,V2等分支.
所以,如果我有默认的开发分支.V1位于Live服务器上.V2位于测试服务器上.
我该如何处理以下场景:
在V1中发现了一个错误,更改需要进入V1,V2和默认值?
V2在某个时间点生成并转到测试服务器,默认情况下连续开发多个功能.在对V2进行一些测试之后,该功能未完成,默认情况下的一些变更集应该在V2中合并 - 但不是所有的变更集?
通常的方法是找到引入错误的变更集(在V1的分支点之前),并将修复程序作为该变更集的子项提交.这将引入一个新头,然后您可以将其合并到您想要修复的分支中,在本例中为V1,V2和default.
这种方法称为" daggy fixes ".
或者,您也可以将其固定在一个分支上(例如,默认),然后使用该graft
命令将其选择到其他分支上.但这并不是那么好,因为变更集会出现三次,并且如果你再次将两个分支合并在一起,可能会导致合并问题.