如何通过mercurial修复以前版本中的错误?

时间:2011-04-15 15:16:56

标签: mercurial workflow

我们在单个存储库中使用mercurial。我们有master分支和develop分支(以及功能分支,但它们与手头的问题没有密切关系)。

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

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

我想做的是:

  1. 更新到我们发布的地点(比如6.1.1)
  2. 修复该版本中的一些错误
  3. 将生成的代码状态标记为(6.1.2)
  4. 构建这个新的6.1.2代码库。
  5. 将这些修补程序迁移到develop分支
  6. 以这种方式执行此操作,以便我可以返回到6.1.2并在需要时修复错误。
  7. 我似乎无法通过更新来做到这一点。我尝试更新到6.1.1,创建一个分支,然后从那里开始,但这会带来master分支的提示,包括所有后续更改。

    有没有一种标准的方法可以做到这一点?我是否正确解释了这些你们得到了我需要做的事情?这似乎很常见。

2 个答案:

答案 0 :(得分:7)

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

  1. 更新到您发布的位置(主分支中的6.1.1)。
  2. 进行更改并提交。
  3. 将master中的最新提交标记为6.1.2。
  4. 将这些更改提取到开发分支。
  5. 继续工作。
  6. 如果您需要进行更多更改,只需重复上述操作,但使用主分支中的6.1.2标记。

答案 1 :(得分:2)

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

  1. 更新至6.1.1
  2. 进行修改
  3. commit(将创建一个新的未命名分支)
  4. 将新版本标记为6.1.2。
  5. 然后,您可以将该编辑合并到您的开发分支
  6. 只要您更新到主分支上的提示之前的修订版本,提交就会从中创建一个新的分支。

    这将保留标记版本,以便您可以轻松返回。