Восстановить пустой файл SVN DB - PullRequest
2 голосов
/ 03 июня 2009

Я попытался выгрузить наш SVN-репозиторий, чтобы перенести его на новое оборудование. Одна из ревизий создала мне проблему, поэтому я попытался пропустить или «перепрыгнуть» этот дамп ревизии с этого номера на более высокий номер ревизии, но проблема осталась:

svnadmin: не удается прочитать файл 'D: \ repositories \ REPO_NAME \ db \ revs \ 3677': найден конец файла

Дело в том, что я выполнил следующую команду:

svnadmin dump D: \ repositories \ REPO_NAME --revision 4000: 5000> D: \ 4000_5000.dmp

Таким образом, предполагается, что дамп только ревизии от 4000 до 5000, но бывает, что по какой-то причине этот диапазон ревизии зависит от нижней ревизии.

Итак, я пошел в каталог db / revs , чтобы посмотреть, что случилось с конфликтующим файлом, и файл был пуст, ноль байт.

Я просмотрел всю "Красную книгу SVN", документацию SVN и Google, но ничего не нашел, есть много примеров восстановления репозитория, но ни один из них не сработал, например, запуск svnadmin recovery бросает другой ошибка:

«Была сделана попытка переместить указатель файла выше начала файла»

Итак, я немного растерялся. Есть ли способ восстановить пустой файл или исключить его из дампа, чтобы он не влиял на более высокие версии?

1 Ответ

0 голосов
/ 04 июня 2009

Есть ли способ восстановить пустое файл?

Очевидно, ответ нет . Вы должны восстановить файл ревизии из ваших резервных копий.

или исключить его из дампа не влияет на высокие ревизии

Это можно сделать с помощью переключателя --incremental:

svn dump D:\repositories\REPO_NAME --incremental --revision 4000:5000 > D:\4000_5000.dmp

Однако, он не будет жаловаться, но у вас будут проблемы с сборкой вашего репозитория с загрузкой svnadmin, так как он будет жаловаться на некоторые отсутствующие узлы (если они были добавлены в rev 3677). Но это может дать вам подсказку, что произошло в ревизии 3677.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...