Reputation: 3575
More than one of the HG-repositories we use have recurring corruption issues, and they are always related to hidden (starting with ".") files, such as .hgignore and .hgtags. Both these repositories are shared between Linux users and Windows users, if that matters.
Suddenly during work with the repository, operations can be halted by messages such as:
hg stat
abort: data/.hgtags.i@fa5433cf149c: no match found!
Verification yields:
hg verify
repository uses revlog format 1
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
data/.hgignore.i@1: missing revlog!
1: empty or missing .hgignore
.hgignore@1: ac9811f0a619 in manifests not found
data/.hgtags.i@17: missing revlog!
17: empty or missing .hgtags
.hgtags@17: fa5433cf149c in manifests not found
1129 files, 18 changesets, 1179 total revisions
6 integrity errors encountered!
(first damaged changeset appears to be 1)
In this repo, i just added .hgtags, and the repository locally became immediately corrupted. I can always fix the problem temporarily by re-cloning from a central repository, but the issue always resurfaces again and again.
What is going on here? I assume that if I do a recontruction/recovery, as suggested in https://www.mercurial-scm.org/wiki/RepositoryCorruption , I can get i new repo without .hgignore and .hgtags, but then I assume it will just become corrupted again if I add new versions.
Upvotes: 1
Views: 936
Reputation: 3575
It appears that some cleanup-script for removing files starting with "~" was making itself into .hg every once in a while. Since the newer "dotencode" feature of HG encodes "." as "~2e", the revlog files were being removed... Mystery solved.
Upvotes: 1