2012-10-14 43 views
4

我环顾四周,但没有在这里看到我的确切情况,所以我希望有人可以提供帮助。如何退出退出mercurial合并?

SCons项目(https://bitbucket.org/scons/scons)在默认分支上进行开发。我最近错误地合并了,并且推掉了一些开发者(称为DEV)的存储库,这些存储库还没有准备好被合并。所以我不得不退出这些变化(hg退出-rXXX --parent YYY)并将其推送到bitbucket。但我们现在该如何前进呢?回退wiki页面说:

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

当然,我们不能放弃默认分支。所以现在DEV不能从主仓库合并,否则他将失去所有正在进行的更改(因为我的退出删除了它们)。现在没有人可以从DEV的回购合并,因为bitbucket回购已经有了他所有的更改(以及退出)。我们似乎处于困境。

我想我有两个问题:

  1. 我们应该做些什么,现在,让DEV能取得进展:他需要用他的变化的回购,在那里他可以工作,在这样的形式,当他已经完成了这些更改可以合并到bitbucket回购。

  2. 当我发现推送的合并错误时应该怎么做?

(注意,这里不存在任何命名分支机构;一切都是默认值)

谢谢!

回答

0

没有时间来测试这一点,但我想它应该像这样工作:

  1. DEV从主回购拉,
  2. 使得退出的退出,然后
  3. 继续工作在他的本地功能。

从这个状态开始,其他人也应该没有合并DEV的新变化的麻烦。

1

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

当然可以。在合并之前更新并继续在那里工作,现在是提示。如果旧分支上有变更,则需要graft。然后,您可以执行no-op merge来关闭死人的头部,或者您可以用hg commit --close-branch关闭它。看看this answer