2011-04-15 45 views
2

我们在单个存储库中使用了mercurial。我们有一个master分支和一个develop分支(以及功能分支,但它们与手头问题没有密切关系)。如何通过mercurial修复先前版本中的错误?

我们用版本(5.1.0.102等)标记master分支。我们在develop上进行开发。

但是现在我们要修复以前版本中的错误。关于这个问题,在这里有很多关于SO的问题,但是他们都没有解释我想做什么。

我想要做的是这样的:

  1. 更新的地方,我们公布的点(比如6.1.1)
  2. 固定在该版本中
  3. 标签,该标签产生的代码状态的一些bug如(6.1.2)
  4. 构建这个新的6.1.2代码库。
  5. 将这些修复程序迁移到develop分支
  6. 以这种方式执行此操作,以便我可以返回到6.1.2并在需要时修复错误。

我似乎无法通过更新来做到这一点。我试图更新到6.1.1,创建一个分支,然后从那里开始,但是这带来了master分支的提示,包括所有后续更改。

有没有这样做的标准方式?我是否正确地解释了这些,以便你们得到我需要做的事情?看起来这是一件很常见的事情。

回答

7

您不需要显式创建分支。我会这样做的方式是:

  1. 更新到您发布的点(主分支中的6.1.1)。
  2. 进行更改并提交它们。
  3. 将master中的最新提交标记为6.1.2。
  4. 将这些更改拉入开发分支。
  5. 继续工作。

如果您需要做出更多更改,则只需重复上述操作,但在主分支中使用6.1.2标签即可。

+0

完美 - 感谢您帮助我以正确的方式思考。 – 2011-04-15 18:26:50

2

你真的不需要创建一个命名分支,除非你真的想拥有一个完整的分支。你可能想要做的是:

  1. 更新到6.1.1
  2. 进行编辑
  3. 承诺(将创建一个新的未命名的分支)
  4. 标记,新版本为6.1.2 。
  5. 然后,您可以合并该编辑到您的开发分支

只要你早于尖端更新到版本在主分支,提交将一个新的分支关闭它。

这将使版本标记,以便您可以轻松地返回到该版本。

+0

cdeszaq - 对不起,他把你打倒了。 ;-) 非常感谢。 – 2011-04-15 16:49:07

相关问题