2014-01-28 1 views
1

우리가 사용하는 하나 이상의 HG 리포지토리에는 반복되는 손상 문제가 있으며 항상 .hgignore와 같은 숨김 파일 ("."로 시작)과 관련됩니다. 및 .hgtags. 이 두 저장소는 Linux 사용자와 Windows 사용자간에 공유됩니다 (중요한 경우)..hgignore 및 .hgtags와 같은 숨김 파일에 의해 손상된 Mercurial 리포지토리

hg stat 
abort: data/[email protected]: no match found! 

인증 수율 :이 REPO에서

hg verify 
repository uses revlog format 1 
checking changesets 
checking manifests 
crosschecking files in changesets and manifests 
checking files 
data/[email protected]: missing revlog! 
1: empty or missing .hgignore 
[email protected]: ac9811f0a619 in manifests not found 
data/[email protected]: missing revlog! 
17: empty or missing .hgtags 
[email protected]: fa5433cf149c in manifests not found 
1129 files, 18 changesets, 1179 total revisions 
6 integrity errors encountered! 
(first damaged changeset appears to be 1) 

, 방금 .hgtags을 첨가하고, 저장소 저장소와 작업시 갑자기

이 동작은 다음과 같은 메시지에 의해 중단 될 수있다 국지적으로 즉시 손상되었다. 중앙 저장소에서 다시 복제하여 문제를 일시적으로 해결할 수는 있지만 문제는 항상 반복해서 발생합니다.

여기에 무슨 일이 일어나고 있습니까? 나는 내가 recontruction/recovery를한다면 https://www.mercurial-scm.org/wiki/RepositoryCorruption에서 제안한대로, 나는 .hgignore와 .hgtags없이 새로운 repo를 얻을 수 있다고 가정한다.하지만 새 버전을 추가하면 다시 손상 될 것이라고 나는 추측한다.

+0

windows/linux 주석은 관련성이없는 것으로 나타났습니다. 리눅스 사용자와의 또 다른 repo는 단지 손상되었을뿐입니다. – Eskil

+0

.hgtags를 손으로 직접 추가하지 마십시오. (정확하게, 무엇을 어떻게해야하는지 모르는 경우) - Mercurial 명령을 사용하고 Mercurial이 파일을 바꿀 수있게 하시겠습니까? –

답변

1

"~"로 시작하는 파일을 지우는 정리 스크립트는 매번 .hg로 변경되는 것으로 보입니다. HG의 새로운 "dotencode"기능은 "." "~ 2e"로, revlog 파일이 제거되었습니다 ... 신비가 풀 렸습니다.

+0

왜 정리 스크립트가 생깁니 까? –

+0

작업 영역의 일부 임시 파일을 수동으로 실행하여 정리했습니다. 편집 결과 등.이 문제는 regext-matching을 기반으로하는 자동 검색 및 삭제의 불행한 사례였습니다. – Eskil

+1

'hg purge'를 사용하는 것은 어떻습니까? (당신이 코스를 저 지른 후에) –