我有一个共享存储库,hg verify
揭示了一个非常旧的变更集(@ 2445)引起的七个问题。
无法修复存储库,如所述 在下面详细介绍,我将不胜感激 有关修复的任何建议。
请注意,我已成功使用“ hg convert”创建了一个通过hg verify
测试的新存储库,但当然可以进行修订
散列都是不同的,因此这并不是解决问题的办法
位于bitbucket上且已克隆的“损坏的”存储库。
bitbucket上的存储库已克隆到两台计算机,一台 运行hg 4.7.2,另一个运行hg 5.0.1。
在hg 4.7.2机器上的克隆从未出现任何明显的问题, 但是另一方面,升级到hg 5.0.1导致我运行“ hg verify”, 揭示了两台机器上相同的7个错误。
(在hg 5.0.1机器上,已识别出涉及“ fncache”的其他问题,但它们超出了此问题的范围。)
这7个错误已在“汞验证”部分中标识 输出开始:
crosschecking files in changesets and manifests
checking files
第一条错误消息是:
MI/MI_s15/all/done@2445: dbb0190415fa not in manifests
和其他所有引用相同的本地版本“ @ 2445”。
“ hg verify”输出的最后一行是:
(first damaged changeset appears to be 2445)
以下尝试均无法解决这些问题:
a)hg debugrebuildstate -r提示
b)hg debugrebuildfncache#失败,并出现以下解释:“(不重建fncache,因为存储库不支持fncache)”
c)在hg 5.0.1机器上的新目录中,将存储库从其主目录克隆到bitbucket上无济于事。
d)在上面(c)中创建的新克隆的存储库中:
hg strip --rev 2444
hg pull -u
# `hg verify` shows the same 7 errors
hg debugrebuildfncache # now succeeds
# `hg verify` shows the same 7 errors
类似的尝试同样失败了。
以防万一:
$ hg debugindex MI/MI_s15/all/done
rev linkrev nodeid p1 p2
0 1337 b5d33daadd43 000000000000 000000000000
1 2445 dbb0190415fa 000000000000 000000000000