在Windows上使用乌龟,我做了从我的本地驱动器上的存储库拉到USB存储库上。
在拉的过程中,我猜测USB接口有一个小故障,因为它在一半的时间中断了。
现在我不能再拉。 我得到的消息: abandoned transaction found - run hg recover
当我运行汞恢复我收到以下消息:
rolling back interrupted transaction ** unknown exception encountered, details follow ** report bug details to http://mercurial.selenic.com/bts/ ** or mercurial@selenic.com ** Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] ** Mercurial Distributed SCM (version 1.6.3) ** Extensions loaded: fixfrozenexts Traceback (most recent call last): File "hg", line 36, in <module> File "mercurial\dispatch.pyo", line 16, in run File "mercurial\dispatch.pyo", line 34, in dispatch File "mercurial\dispatch.pyo", line 54, in _runcatch File "mercurial\dispatch.pyo", line 494, in _dispatch File "mercurial\dispatch.pyo", line 355, in runcommand File "mercurial\dispatch.pyo", line 545, in _runcommand File "mercurial\dispatch.pyo", line 499, in checkargs File "mercurial\dispatch.pyo", line 492, in <lambda> File "mercurial\util.pyo", line 420, in check File "mercurial\commands.pyo", line 2869, in recover File "mercurial\localrepo.pyo", line 606, in recover File "mercurial\transaction.pyo", line 173, in rollback ValueError: too many values to unpack
如果我尝试手动回滚我得到这个消息: no rollback information available
这一次,我可以很容易地删除我的棍子上的整个备份,并做一个新的拉,因为回购是小的,并且USB棒不包含任何其他更改。 但是,如果这发生在一个更大的回购,我不能从头开始重新启动呢? 我怎样才能恢复回购?
我遇到类似的问题,并将其报告为一个错误 ,报告中的开发人员提出这个问题是一个腐败的杂志。 如错误报告中所述,您可以运行hg verify
来查看最后的“良好”提交,并使用hg clone -r <#>
来恢复,直到提交。
我认为这实际上是代码源中的一个错误。 您应该像错误信息中所述的那样向Mercurial团队报告错误。
我使用的是TeamCity CI和Deployment服务器,可能这是另一个问题,但是我已经发布了类似问题 的答案 。