我们使用的多个HG存储库都存在重复出现的损坏问题,并且它们始终与隐藏(以“。”开头)文件相关,例如.hgignore和.hgtags。 如果这很重要,这两个存储库在Linux用户和Windows用户之间共享。
在使用存储库时突然间,可以通过以下消息暂停操作:
hg stat
abort: data/.hgtags.i@fa5433cf149c: no match found!
验证产量:
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)
在这个仓库中,我刚刚添加了.hgtags,本地存储库立即被破坏了。 我总是可以通过从中央存储库重新克隆来暂时解决问题,但问题总是一次又一次地重现。
这里发生了什么?我假设如果我按照https://www.mercurial-scm.org/wiki/RepositoryCorruption的建议进行重构/恢复,我可以在没有.hgignore和.hgtags的情况下获得新的仓库,但是我认为如果添加新版本它会再次损坏。
答案 0 :(得分:1)
似乎用于删除以“〜”开头的文件的一些清理脚本每隔一段时间就会变成.hg。由于HG的较新“dotencode”功能编码“。”作为“~2e”,revlog文件被删除......神秘解决了。