你如何防止你的Mercurial(或Git)分支被锁定?

时间:2010-05-18 18:57:17

标签: git mercurial dvcs release-management

我想把这个场景扔出去,看看最客观的,有香草的Mercurial解决方法是什么。

假设我的集中式Mercurial存储库中有以下分支,用于我的集中式非分布式Web应用程序:

repository
    default
    feature1
    feature2
    bugs

假设有十个开发人员已经修复了“bug”分支并推送了。现在让我们说是时候发布了。所以,我做了一些最终的测试,突然之间,我发现了修复错误的问题 - 这个问题需要花费几个小时来修复。所以,现在我有必须发布的超级关键错误修复,但是“错误”分支被锁定,我无法合并到“默认”分支并释放,因为半修复错误也将被释放,我不能让这种情况发生。

那我该怎么办?

我是否应该恢复bug分支中的更改,将bug合并为默认值,然后释放?如果有10个提交与此特定问题 - 错误修复相关 - 如何找到并还原所有这些?这听起来很毛茸茸,但让我说我这样做。当需要修复问题bug修复程序的开发人员拉动并更新其存储库时,该怎么办?他的改变将全部归还。他可以恢复原状......这是要走的路吗?

另一个选择是做一些樱桃挑选,并将我想要从'bugs'分支中发布的更改减去问题bug修复提交,并将其合并到'default'分支中。但这听起来比以前提出的解决方案更加毛茸茸。

你们都做了什么?

1 个答案:

答案 0 :(得分:1)

我会创建一个新的分支(发布):

  • 从当前“锁定”分支错误开始
  • 恢复有问题的错误修复

我会离开“bug”分支。没有樱桃采摘。