Удаление поврежденных файлов из папки CVS_root с помощью CVS

Целыми днями и ночью ломал голову над этим, как мне убедиться, что поврежденные файлы удалены из CVS_root. Я пытаюсь создать файлы дампа с помощью инструмента cvs2git, и это процесс, который требует времени, поэтому очень раздражает, когда он вылетает из-за поврежденных файлов и его нужно перезапускать.

Пример разбитого файла будет выглядеть так:

cvs -Q -f -d :local:/cvs co -r1.1 -p -kb "rep/image.gif"
cvs checkout: Dropping data: pos>vec->text.nlines
cvs [checkout aborted]: invalid change text in r:/CVS/rep/image.gif,v

Похоже, я никак не могу исправить файлы, так как файл "image.gif, v" только увеличивается, а ошибка никогда не удаляется. Итак, я полагаю, что единственный способ исправить это - полностью удалить файл image.gif, v.

Есть ли способ составить список всех файлов в текущей папке и подпапках. Создайте вызов cvs, подобный приведенному выше, и проверьте, не приводит ли он к прерыванию проверки. И если проверка прервана, он удаляет файл.

Маби, какой-нибудь bat-файл или другой файл для использования с командной строкой?

Как запустить команду "cvs -Q -f -d: local: / cvs co -r1.1 -p -kb" rep / image.gif "" и прослушать ошибку, подобную упомянутой выше? У меня есть git bash и msys2, установленные вместе с Windows PowerShell, поэтому у меня должны быть необходимые инструменты, если только я знаю, как ...: D


person Kim Steinhaug    schedule 15.03.2018    source источник
comment
Что произойдет, если вы сделаете дамп всех версий известного плохого файла в соответствии с приведенной выше командой? Есть ли сообщения об ошибках? Возвращает ли команда cvs ненулевой результат? (В любом случае может быть проще просто перезапустить cvs2git, хотя это может показаться громоздким.)   -  person Mort    schedule 15.03.2018


Ответы (1)


Что произойдет, если вы сделаете дамп всех версий известного плохого файла

Я добавил папку с v-файлами для всех желающих поиграть здесь https://github.com/steinhaug/steinhaug/tree/master/reference.files/2018-03-corrupted-cvs-files

Поврежден один файл: browser-firefox.gif, v.

Команда:

cvs -Q -f -d: local: / cvs co -r1.1 -p -kb "путь-репозитория / браузер-firefox.gif"

Случилось так, что в некоторых файлах возникли ошибки памяти, а в некоторых - ошибка, упомянутая выше. К счастью, все ошибки связаны с двоичными файлами, поэтому я просто удалил все файлы изображений и большинство библиотек, которые были импортированы в проект, который я экспортировал.

В конце концов, я был счастлив сохранить свою историю кодирования, и никаких проблем с текстовыми файлами не было. cvs2git отлично обрабатывает отсутствующие файлы, игнорирует их и продолжает работать. Я не нашел способа исправить какой-либо файл, который был поврежден, поэтому удаление кажется единственным вариантом.

person Kim Steinhaug    schedule 17.03.2018