Удаление поврежденных файлов из папки 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


234
1

Ответ:

What happens when you do dump all the versions of a known bad file

Я добавил папку с 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 отлично обрабатывает отсутствующие файлы, игнорирует их и продолжает работать. Я не нашел способа исправить какой-либо файл, который был поврежден, поэтому удаление кажется единственным вариантом.