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

Загрузка SVNAdmin возвращает несоответствие контрольной суммы

Я пытаюсь загрузить файл дампа svn на свой сервер RHEL. Файл дампа был загружен с нашего старого сервера Ubuntu, и я использовал svnadmin create reponame а потом svnadmin load --quiet reponame < dumpfilename.

Через некоторое время я получаю следующее сообщение:

svnadmin: Checksum mismatch,   
file '/images/lang_cards/large/2001_Lang_Valentines_inside_large.jpg':
expected:  97b1f37b81463ac88a3c2c18abfbb329
actual:  944edbcc7684cb736eca5ed2c0d1c12c

Как я могу обойти эту ошибку, чтобы продолжить загрузку файла дампа?

Спасибо!

Возможные варианты включают в себя поврежденный репозиторий, файл дампа, поврежденный во время передачи, или файл дампа, отредактированный вручную (попытка изменить пути ...?).

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

Если у вас нет возможности выполнить повторный дамп и повторить попытку (или если при этом возникнет та же проблема), попробуйте svndumpfilter исключить этот файл и любые другие файлы с проблемами.

Чтобы восстановить эти файлы, вы можете очень осторожно исправить файл дампа, чтобы получить правильную контрольную сумму (Text-content-md5 ?, но убедитесь, что файл не поврежден), или получить их из проверок / рабочих копий (или извлечь и восстановить из текст и дельты в дампе).

Была эта проблема после фильтрации моего дампа с помощью https://github.com/jasperlee108/svndumpfilterIN

Исправлено с удалением контрольных сумм md5:

sed -i '/Text-copy-source-md5/d' your.dmp

Однако могут быть некоторые последствия ...

Я рекомендую использовать svndumptool скрипт

  • для проверки дампа с check команда
  • для исправления специфичных для платформы концов строк (eolfix) и формирование правильных контрольных сумм
  • к split или merge свалки
  • и многое другое

В вашем конкретном случае команда sanitize должен исправить контрольные суммы в вашем дампе. Но тогда требуется глубокая проверка содержимого загруженного репозитория.

Действительно необходимый инструмент для расширенных манипуляций с дампом репозитория Subversion.