Mercurial:发布分支?

时间:2014-11-04 20:53:54

标签: version-control mercurial release

以前的历史:过去几年我使用过SVN。发布新版本的软件项目包括以下步骤:

  1. 为新版本创建分支:/repo/branches/0.1
  2. 让代码进入一个有价值的发布状态
  3. 为候选发布版创建标记:/repo/tags/0.1-RC1
  4. 为RC1创建分支以修复错误:/repo/branches/0.1-RC1
  5. 为新候选版本创建标记:/repo/tags/0.1-RC2
  6. {...}
  7. 从最后一个RC创建v0.1的标记:/repo/tags/0.1
  8. 将0.1合并到主干
  9. 据我所知,Mercurial认为分支和标签与SVN略有不同,这最终导致了我的问题:

    我是否为发布创建分支(和标签)?如果没有:Mercurial还想做什么来存档类似于描述的开发模式/周期的东西?

2 个答案:

答案 0 :(得分:1)

您可以轻松使用此方法。我不确定你需要一个单独的RC1分支,但我想有充分的理由。

标签存储在Mercurial中的方式有​​点令人烦恼,Mercurial是一个逐个列出它们的版本化文件。因此,标签创建构成了变更集。您应该努力将所有这些标记创建变更集保留在一个分支上,否则您将遇到合并冲突(这很容易解决,但仍然令人讨厌)。

答案 1 :(得分:1)

您可以使用旧工作流程,但是:

  • 每个版本的分支确实需要(在任何SCM中),只有当您必须同时在生产中维护一些数量(> 1)的版本时,才能保持版本分支 - 树需要
  • 我看到很多(相当复杂的)项目,它们使用双分支方法(仅限合并集使用“稳定”,每天开发使用标记+“Devel”)(每个任务的短期分支也是可能的) ,但它比品味和习惯更多的问题,而不是“必须”)