Mercurial: сообщение «abort: index 00changelog.i поврежден!» после выполнения команды sed. Как с этим бороться?

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

9
задан brandizzi 7 October 2011 в 09:22
поделиться