使用Mercurial(通过TortoiseHg)时,我收到“丢失的revlog”错误。有谁知道如何解决这个回购?
% hg --repository C:\Source\Project verify --verbose
repository uses revlog format 1
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
data/MyProject.Class.Library.Tests/Part/FileName.cs.orig.i@1: missing revlog!
1: empty or missing MyProject.Class.Library.Tests/Part/FileName.cs.orig
MyProject.Class.Library.Tests/Part/FileName.cs.orig@1: fb25dd9d5f41 in manifests not found
4384 files, 1354 changesets, 12803 total revisions
3 integrity errors encountered!
(first damaged changeset appears to be 1)
[command returned code 1 Wed May 11 13:31:14 2011]
答案 0 :(得分:9)
如on the wiki所述,您可以尝试将convert.hg.ignoreerrors
设置为True的转换扩展名设置为True。请记住,这将修改哈希值,并且损坏的文件可能会完全丢失。
答案 1 :(得分:5)
Mercurial wiki在Repository Corruption上有一个页面。如果@Cat Plus Plus建议的解决方案不适合您,那么您可以尝试重建revlog。
有一个部分包含重建丢失的revlog的分步说明。但是,您必须拥有问题文件的副本,因为它存在于“错误”修订版中。
在您的情况下,您需要一份data/MyProject.Class.Library.Tests/Part/FileName.cs.orig
的精确副本,因为它存在于回购的修订版1中。