在Mercurial中将分支合并恢复为默认值

时间:2011-11-04 12:24:04

标签: mercurial

我想恢复我对mercurial所做的合并,我在Google上找到的网站上看不清楚。

我最近的Mercurial变更集是0d9973c7ade3 - Merge 'feature/20' with 'default'.,我已经推了,我想回去。

我想要返回的变更集是8dc9b342ea75,这是我想要恢复的默认变更集。

我怎么做?

1 个答案:

答案 0 :(得分:2)

由于您推动了合并,正确的解决方案在很大程度上取决于有多少人使用您的“主”存储库以及您对它们的控制权。

如果您单独使用此存储库,则可以使用MQ扩展来删除更改历史记录并使用它完成。您需要对存储库的完全访问权限。

如果其他人正在使用存储库,则会更复杂。如果你想要一个“干净”的历史,你需要每个人的合作来做到这一点。如果无法做到这一点,您可以还原更改,但历史记录会有一些更改。

清洁历史解决方案

您必须激活“master”存储库中的MQ extension。然后,您可以使用strip命令删除所有不需要的提交:

 hg strip unwantedrevision

然后,您必须再次克隆存储库以删除每个已删除的更改集。或者您也可以删除包含它们的每个存储库上的更改集。

如果一个存储库在操作后仍有其历史记录中的更改,则下次将再次按下该存储库。这就是为什么你需要每个有副本的人的合作。

其他解决方案

如果无法控制所有克隆,可以使用backout命令。我无法帮助你,我永远不必使用它。但是链接的文档对我来说似乎很清楚。

祝你好运:)