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