У меня есть проект, созданный 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
из моего клонированного репозитория в поврежденный.Однако мне интересно: есть ли другой, более практичный способ решения?Кстати, почему эта проблема возникает, если «поврежденный» файл даже не изменяется?