Назад | Перейти на главную страницу

SVN Corrupted, нужно двигаться с историей

У нас возникла проблема с нашим svn-репозиторием, он содержит все, что очень важно.

Когда мы запускали дамп, мы получали сообщение об ошибке

svnadmin: E200002: сериализованный хэш искажен

Это мешает нам выполнить дамп и переместить наш контент, это также не удалось при экспорте svn.

Мы обнаружили, что одна из ревизий повреждена, можно ли как-то исправить или восстановить репозиторий, если нам нужно его переместить.

Это сработало для меня. Я только что восстановил поврежденный файл db / revprops / 19. 19 вот версия поврежденного коммита. Вы можете увидеть, какая фиксация повреждена, выполнив svn log.

Этот файл должен выглядеть так:

K 10
svn:author
V 5
roman
K 8
svn:date
V 27
2010-06-05T16:53:51.953072Z
K 7
svn:log
V 0

END

Мне пришлось изменить это

K 6
svn:loo

к этому:

K 7
svn:log

(7 здесь показывает длину следующей строки)

У вас есть резервные копии или зеркала, с которых вы можете получить эту версию?

На самом деле сегодня у меня была именно эта ошибка с поврежденной версией 0 на одном из моих зеркал, которую я смог исправить, скопировав revprops (поврежденный файл) с другого зеркала. Все прошло успешно, и после этого у меня не было проблем.

Это может быть не рекомендуемый метод для этого, поэтому будьте осторожны. Резервные копии резервные копии резервные копии.

Нам удалось исправить это, выполнив svn-дамп с обеих сторон поврежденной ревизии, а затем объединив два файла вместе с помощью cat или type, в зависимости от того, какую платформу вы используете, а затем импортируя это в новый репозиторий.

После этого я выполнил проверку, и она завершилась до конца, а также вся ревизия истории теперь видна, когда раньше она не могла пройти через поврежденный файл ревизии.

После нескольких операций резервного копирования / восстановления вручную мой репозиторий стал выдавать ту же ошибку. Я проверяю последние версии в корне репозитория и обнаруживаю, что один из файлов в db / revs / каталог размещен в db / revprops / (эти файлы очень разные по размеру, поэтому я это быстро замечаю)