我有一个由Mercurial版本化的项目。有一次,我运行了一个命令,如......
$ find . -type f | xargs sed -i.bkp 's/my_func/another_func/'
......在这个项目中。然后Mercurial停下来继续工作:
$ hg status
abort: index 00changelog.i is corrupted!
文件00changelog.i
未包含已替换的字符串,即使我将00changelog.i.bkp
移至00changelog.i
,问题仍然存在。 hg verify
也没有帮助:
$ hg verify
abort: index 00changelog.i is corrupted!
我通过从另一个目录中的远程存储库克隆项目然后将.hg
从克隆的存储库复制到损坏的存储库来解决了这个问题。但是,我想知道:还有另一种更实用的解决方法吗?顺便说一句,如果“损坏的”文件甚至没有改变,为什么会出现这个问题?
答案 0 :(得分:7)
请注意,两个 00changelog.i文件:
答案 1 :(得分:-2)
我会使用convert来重新生成repo或者移植以将补丁移动到新的补丁。祝你好运。