Mercurial Repo:最近提交的腐败案

时间:2011-08-31 12:45:14

标签: mercurial repository corrupt

我相信我最近在Mercurial的承诺已经腐败了。我不能再做任何事了,也不能回滚。

我跑了hg verify,建议我应该hg recover。然后我按照建议运行hg recover,我现在收到错误:

abort: index 00manifest.i is corrupted!

根据这篇文章:http://osdir.com/ml/version-control.mercurial.general/2007-03/msg00099.html我应该能够从00manifest.i文件中删除最后64位,然后重新开始工作。

这是否正确?我将如何这样做?

PS。到目前为止,我所做的一切都是原始存储库的克隆。

非常感谢,

安迪

1 个答案:

答案 0 :(得分:4)

您可以使用Python控制台截断00manifest.i

$ python
>>> with open("00manifest.i.orig", 'rb') as fp:
...     data = fp.read()
>>> with open("00manifest.i", 'wb') as fp:
...     fp.write(data[:-64])

首先,以二进制模式读取文件。 data只是一个字符串。然后使用切片来回写除最后64个字节以外的所有字节,再次以二进制模式。