如何在mercurial中退出合并的退出?

时间:2012-10-14 13:26:58

标签: mercurial

我环顾四周,但没有看到我的确切案例,所以我希望有人可以提供帮助。

SCons项目(https://bitbucket.org/scons/scons)在默认分支上进行开发。我最近错误地合并了AND PUSHED来自开发​​人员(称为DEV)存储库的一些更改,这些存储库尚未准备好合并。所以我不得不退出这些更改(hg backout -rXXX --parent YYY)并将其推送到bitbucket。但是我们现在怎么能前进呢?退出维基页面说:

  

警告:如果您需要,退出合并会导致麻烦   重做合并。处理错误合并的唯一安全方法是   放弃分支。

当然我们不能放弃默认分支。所以现在DEV无法从主回购中合并,或者他将失去所有正在进行的更改(因为我的退出删除了它们)。现在没有人可以从DEV的回购中合并,因为bitbucket repo已经拥有了所有的更改(以及退出)。我们似乎处境艰难。

我想我有两个问题:

  1. 我们现在应该做些什么,让DEV能够取得进步:他需要一个可以在他工作的地方进行变革的回购,这样一种形式,当他完成后,这些变化可以合并到bitbucket回购中。

  2. 一旦发现推送合并错误,我该怎么办?

  3. (请注意,这里没有命名分支;一切都是默认的。)

    谢谢!

2 个答案:

答案 0 :(得分:1)

  

当然我们不能放弃默认分支。

当然可以。在合并之前更新并继续在那里工作,现在是小费。如果旧分支上有更改,则需要graft它们。然后,您可以执行no-op merge绑定死角,也可以使用hg commit --close-branch关闭它。看看this answer

答案 1 :(得分:0)

没时间测试这个,但我想它应该是这样的:

  1. DEV从主回购拉
  2. 撤回退出,然后
  3. 继续在本地处理他的功能。
  4. 从这个状态开始,其他人也可以毫不费力地合并来自DEV的新变化。