首页 文章

在Mercurial中将dev分支合并/转换为稳定分支的正确方法是什么?

提问于
浏览
6

我在一家网站开发公司工作,该公司使用Mercurial作为其首选的DVCS . 我们目前正在创建已投入 生产环境 的新版网站 .

站点的稳定和开发分支都存在于同一存储库中 . 生产环境 站点运行稳定的分支,开发人员明显编码反对开发(从现在开始)分支(除了错误修正) .

这个模型对我们来说很新鲜 . 在最后一次主要的 生产环境 推动之后,我们从刚刚发布的稳定分支创建了开发分支(使用hg branch dev从最新的稳定版本开始并承诺创建新的技巧) .

现在我们正在接近另一个版本,dev分支中存在大量新代码 . 同时,稳定分支只看到错误修正, all that have been ported over 已经到了dev分支 .

当我们对dev分支的状态感到满意并认为它已准备好 生产环境 时,我们想要的是当前的dev分支状态成为新的稳定分支 . 在一个快速的冲程中,稳定的分支将吸收已经对dev分支进行的大量变化 . dev分支(我们假设)基本上变得不活跃,直到我们再次开始开发新东西 .

实际实现这一目标的正确过程是什么?从dev的尖端简单合并,同时检查稳定分支的尖端,或其他什么?正如我所说,所有对稳定的更改都已经存在于开发中,所以我们可以让dev变得稳定 .

一旦将dev的神秘变形转换为稳定并且结果被标记,再次开始进一步开发dev开发的过程是什么,因为在合并到stable之后它将没有一个有效的提示来检查?只需查看合并之前的最后一次开发修订,然后提交以创建新提示?这似乎是错的;我的直觉告诉我,“新开发”应该从稳定分支的合并和标记提示中分离出来,但我不会完成 . (如上所述,上次我们通过首先创建命名的dev分支来实现这一点;这次我们只想创建一个新的技巧,现有的,虽然可能是非活动后合并开发分支)

对于那些更习惯于分布式版本控制和Mercurial的人来说,这是一个简单的问题,但是我们离开SVN-land还不算太久,事情仍然有些朦胧 . 任何帮助表示赞赏 .

3 回答

  • 2

    如果开发分支已经完成了对稳定分支的所有添加,并且开发分支已准备好成为新的稳定分支,那么您可以分支开发分支的新稳定分支 . 可以保留旧的稳定分支,以防遗留代码的用户需要修补程序 .

  • 1

    我会:

    • 第一个rebase dev在稳定之上:见Mercurial rebase
      这将允许您在dev分支中解决在开发分支生命周期中在稳定分支上进行的错误修复可能发生的任何最后冲突 .

    • 然后在dev中合并稳定(平凡合并):stable现在包含它的所有错误修正和dev变更集 .

    • 从那里创建一个新的dev(dev2)分支,因为旧的分支刚刚重写了它的历史记录,这对任何人来说都是不好的 . 最好同意(对于开发人员)从新的开始 .

  • 3

    不是你的问题的直接答案,但存在一个关于mercurial的优秀教程here . 本教程以非常简单的方式解释了合并 . 我发现在阅读本书之后,我比任何其他书都更了解Mercurial .

相关问题