2011-05-11 3 views
9

Mercurial을 사용할 때 (TortoiseHg를 통해) "revlog가 없습니다"라는 오류가 표시됩니다. 아무도이 레포를 수정하는 방법을 알고 있습니까?Mercurial Miss 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/[email protected]: missing revlog! 
1: empty or missing MyProject.Class.Library.Tests/Part/FileName.cs.orig 
MyProject.Class.Library.Tests/Part/[email protected]: 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] 
+5

이번에는 도움이되지 않지만 원인을 파악하는 데 도움이됩니다. mercurial'revert' 명령은 작업 디렉토리에 있지만 저장소가 아닌'.orig' 파일을 생성합니다. 만약 누군가 실수로 당신을 커밋했다면 당신은 당신의'.hg/data' 영역에서 하나를 끝낼 것입니다. 괜찮습니다.하지만 Mercurial 외부의 누군가가 모든 .orig 파일을 재귀 적으로 삭제했다면, 작업 디렉토리에만있을 것이라고 생각했습니다. 파일을'.hg/data'에서도 삭제했습니다. –

답변

9

당신은 on the wiki을 설명 된 바와 같이, 참으로 convert.hg.ignoreerrors 세트로 변환 확장자를 사용하려고 할 수 있습니다. 이렇게하면 해시가 수정되고 손상된 파일은 완전히 손실됩니다.

5

머큐리얼 위키의 페이지는 Repository Corruption입니다. @Cat Plus Plus에서 제안한 솔루션이 작동하지 않으면 revlog를 재구성하려고 시도 할 수 있습니다.

누락 된 revlog를 재구성하기위한 단계별 지침이있는 섹션이 있습니다. 그러나 "불량"버전에 존재하는 문제 파일을 복사해야합니다.

정확한 경우, data/MyProject.Class.Library.Tests/Part/FileName.cs.orig 사본이 리포의 개정 1에 존재해야합니다.