无法中止中断的rebase

时间:2013-10-28 23:31:22

标签: mercurial

我的存储库陷入明显中断的rebase:如果我尝试新的提交,我收到此消息:

abort: rebase in progress
(use 'hg rebase --continue' or 'hg rebase --abort')

hg rebase --abort失败并显示消息

abort: unknown revision '<hex id>'!

我甚至试过hg rebase --continue,但得到了同样的错误。 hg verify认为一切正常。有没有办法让我的存储库得到解开,或者我是否必须将其丢弃并制作一个新的克隆? (幸运的是,我能够简单地hg clone破坏的回购并留下问题。但我仍然想知道一个更好的出路。)

我不知道存储库是如何进入这种状态的;我可能在几个月前做过一些事情,我可能不会。我刚刚回到了回购中并遇到了这个问题。 (我偶尔使用rebase,从来没有遇到过问题)。我找了一个备份包,但没看到一个。

1 个答案:

答案 0 :(得分:1)

hg debugcheckstate专门检查了“dirstate的正确性”。我不确定它的检查是否是hg verify执行的检查的子集,但它不会受到伤害。

在与此类似的情况下,您可以继续使用hg debugsetparents tip; hg up -C .(可选择使用变更集ID替换tip),然后使用hg strip删除任何部分重新定位的内容承诺你不想保留。这基本上覆盖了通常的hg update系统,并手动将工作目录的父级设置为tiphg up -C然后清理工作目录。

这样做可能会丢失数据;你应该有一个备份(例如在Bitbucket上),你可以hg pull任何丢失的变更集。在最坏的情况下,可能需要新的克隆。