Mercurial缺少Revlog

Guy*_*Guy 10 mercurial tortoisehg

我在使用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]
Run Code Online (Sandbox Code Playgroud)

Cat*_*lus 9

您可以尝试使用convert.hg.ignoreerrors设置为True的convert extension ,如wiki中所述.请记住,这将修改哈希值,并且损坏的文件可能会完全丢失.


Tim*_*gan 5

Mercurial wiki有一个关于Repository Corruption的页面.如果@Cat Plus Plus建议的解决方案不适合您,那么您可以尝试重建revlog.

有一个部分包含重建丢失的revlog的逐步说明.但是,您必须拥有问题文件的副本,因为它存在于"错误"修订版中.

在您的情况下,您需要一个精确的副本,data/MyProject.Class.Library.Tests/Part/FileName.cs.orig因为它存在于repo的第1版中.