我为一家使用Mercurial作为其首选DVCS的网络开发公司工作。我们目前正在创建一个已经投入生产的网站的新版本。
站点的 stable 和 development 分支都存在于同一个存储库中。生产站点运行 stable 分支,开发人员显然会针对开发(从现在开始 dev )分支编码(除了错误修正)。
这个模型对我们来说很新鲜。在上一次主要的生产推动之后,我们从刚刚发布的稳定分支创建了开发分支(使用 hg branch 来自最新的 stable 修订版并承诺创建一个新的< EM>尖)。
现在我们正在接近另一个版本,dev分支中存在大量新代码。与此同时, stable 分支只看到错误修正,所有已经移植到 dev 分支的。
当我们对 dev 分支的状态感到满意并认为它已准备好生产时,我们想要的是 dev branch成为新的 stable 分支。在一个快速的笔划中, stable 分支将吸收对 dev 分支所做的大量更改。 dev 分支将(我们假设)基本上变为非活动状态,直到我们再次开始开发新内容为止。
实际实现这一目标的正确过程是什么?从 dev 的提示进行简单的合并,同时检查 stable 分支的提示,或其他什么?正如我所说的,对 stable 的所有更改都已存在于 dev 中,因此我们可以使用 dev 成为 stable >按原样。
一旦完成 dev 对 stable 的神秘变形,并且结果已被标记,那么在 dev <上开始进一步开发的过程是什么? / em>再次分支,因为在合并到 stable 之后,它将没有活动的提示来检查?只需在合并之前查看最后一个 dev 修订版,并在其上提交以创建新的提示?这似乎是错的;我的直觉告诉我,“new dev ”应该从合并后的&amp;标记稳定分支的提示,但我不知道是怎么做的。 (如上所述,上次我们通过首先创建命名的 dev 分支来实现这一点;这次我们只想创建一个新的 tip 到现有的,尽管可能非活动后合并 dev 分支)
对于那些习惯于分布式版本控制和Mercurial的人来说,这是一个简单的问题,但是我们离开SVN-land时间不长,事情仍然有些模糊。任何帮助表示赞赏。
答案 0 :(得分:3)
如果开发分支已经完成了对稳定分支的所有添加,并且开发分支已准备好成为新的稳定分支,那么您可以只分支开发分支的新稳定分支。可以保留旧的稳定分支,以防遗留代码的用户需要修补程序。
答案 1 :(得分:2)
我会:
答案 2 :(得分:1)
不是您问题的直接答案,而是存在关于mercurial的优秀教程here。本教程以非常简单的方式解释了合并。我发现在阅读本书后我比其他任何书都更了解Mercurial。