В моем случае произошла ошибка в разделе symbols
файла xxx,v
. Ожидаемый формат <i>tag_name</i>:<i>tag_rev</i>
, но были случаи:
- Отсутствует
:<i>tag_rev</i>
например. <i>tag_name</i>
Исправлено удалением строки.
- Несколько
<i>tag_name</i>
например. <i>tag_name1</i>:<i>tag_name2</i>:<i>tag_rev</i>
Исправлено путем удаления имени второго тега (который вы, вероятно, удаляете, зависит от того, что они есть).
- Неверное имя / разделитель редакции. В моем случае недопустимый символ всегда был
z
(разница между ASCII :
и z
только 1 бит).
например. <i>tag_name</i>z<i>tag_rev</i>
Исправлено путем замены z
на :
.
Чтобы помочь во время моего расследования, я добавил print
строку к cvs2svn_rcsparse\common.py
. Если синтаксический анализ символов не удался, причиной является последний напечатанный тег.
def _parse_admin_symbols(self, token):
while 1:
tag_name = self.ts.get()
# WileCau print the token and tag_name
print 'token=|%s| tag_name=|%s|' % (token, tag_name)
if tag_name == ';':
break
self.ts.match(':')
tag_rev = self.ts.get()
self.sink.define_tag(tag_name, tag_rev)
Дополнительная печать добавляет много шума к выводу, поэтому было бы лучше печатать только в случае исключения, но этого было достаточно для моих нужд.
Я также нашел эту ссылку, которая оказалась не моей проблемой, но может помочь кому-то еще. Благодарим Кристиана Хаармана за документальное оформление.
http://tigris -scm.10930.n7.nabble.com / предложения-для-cvs2svn-фикс-для-ошибки-Quot-MyFile-Txt-v-это-не-а-Валид-в- файл-Quot-td54240.html
В случае, если ссылка становится недействительной, сводится к тому, что кто-то отредактировал файл xxx,v
и его редактор заменил 0x0A (LF) на 0x0D / 0x0A (CR / LF), и дополнительный символ заставил анализатор думать файл был поврежден.