Файл дампа SVN, кажется, искажен или неправильный формат

802
ChrisW

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

Я хотел бы запустить svndumpfilter на дампе, прежде чем импортировать его в другое хранилище, но все, что я делаю, вызывает некоторые ошибки;

  • если я запускаю tar xzfфайл, я получаю все содержимое (каталог, а не плоский файл) - если я затем помещаю это содержимое в каталог и запускаю svndumpfilter, я получаю сообщение об ошибкеsvndumpfilter: E000021: Can't read stream: Is a directory
  • если я распаковываю (но не распаковываю) файл gz, а затем пытаюсь запустить svndumpfilter для файла tar, который я получаю svndumpfilter: E140001: Malformed dumpfile header 'breakout.ini'
  • если я попытаюсь загрузить дамп напрямую, svnrdump dump http://subversion.assembla.com/svn/<repo_name>/то получаю ошибку:

    * Dumped revision 6. svnrdump: E175002: REPORT of  'http://subversion.assembla.com/svn/<repo_name>': Could not read response body: Connection reset by peer (http://subversion.assembla.com) 

    это последовательно происходит после сброшенной версии 6.

  • Если я пытаюсь импортировать несжатый файл в локальный репозиторий, я получаю

    $ sudo svnadmin create my_repo $ sudo svnadmin load --force-uuid my_repo < repo_download.tar.gz svnadmin: E140001: Malformed dumpfile header '?\8' 

Локально я использую SVN версии 1.7.4 в Ubuntu. Я не знаю, какую версию на ассембле.

Есть ли что-то очевидное, что я упускаю, или они путают вещи, собирая содержимое, которое должно быть плоским файлом дампа?

Запуск дерева по несжатой загрузке дает:

tree -d . âââ tmp âââ db â   âââ node-origins â   âââ revprops â   â   âââ 0 â   âââ revs â   â   âââ 0 â   âââ transactions â   âââ txn-protorevs âââ hooks â   âââ post-commit.d â   âââ post-revprop-change.d â   âââ pre-commit.d âââ locks  14 directories 
0
Будьте осторожны - «zip» - это особый тип архивации и сжатия. Вы не можете "разархивировать" архив tar или сжатые данные gzip. Attie 6 лет назад 1
«_Я запускаю tar xzf для файла, я получаю все содержимое (каталог, а не простой файл) _» Похоже, вы скачали снимок файлов репозитория (извлечено) или, возможно, копию бэкэнда SVN хранилище. Пожалуйста, опубликуйте листинг / скриншот или описание, сообщающее нам, какие файлы вы видите. Attie 6 лет назад 0
@ Atttie Я предоставил вывод от запуска `tree` - это достаточно информации? ChrisW 6 лет назад 0
Это выглядит как очень раздетая (без ревизий, отсутствует формат & uuid) копия внутреннего репозитория SVN ... (аналогично тому, что вы получите из `svnadmin create $ ` ... ... можете попробовать еще раз, выполнив их шаги, чтобы убедиться, что вы делаете это правильно? Возможно, они дают вам пустые данные. Attie 6 лет назад 0
Запуск `file` на обычном (не сжатом) дампе должен дать вам что-то вроде этого:` Subversion dumpfile (версия: 2) `- это отдельный файл, который должен быть загружен в` svnadmin load` Attie 6 лет назад 0
К сожалению, я запустил `tree` с опцией` -d` для краткости ... каталог `db` на самом деле содержит каталог` rev \ 0 \ `, который содержит файл для каждой ревизии; запуск `file` на 71 возвращает` 71: data`. Попытка импортировать это в новое хранилище приводит к `svnadmin: E140001: Неверно сформированный заголовок файла дампа 'DELTA 69 444409853 344'. ChrisW 6 лет назад 0
в этом случае вполне вероятно, что это SVN-репозиторий ... попробуйте `svn checkout file: // $ (pwd) / tmp` и посмотрите, что получится ... Attie 6 лет назад 1
@ Нет, да! Это! Я действительно не понимал, что вы можете экспортировать весь репо таким образом - по крайней мере, теперь я знаю, как это выглядит :) ChrisW 6 лет назад 0
Отличные новости! Пожалуйста, примите мой обновленный ответ, если вы чувствуете, что я это заслужил :) Attie 6 лет назад 0

1 ответ на вопрос

1
Attie

Обновить:

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

svn checkout file://$(pwd)/tmp ./checkout 

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

svnrdump должен работать, но, возможно, стоит попытаться отразить удаленный репозиторий вместо локального:

svnadmin create mirror echo '#!/bin/true' > mirror/hooks/pre-revprop-change chmod +x mirror/hooks/pre-revprop-change svnsync init file://$(pwd)/mirror http://subversion.assembla.com/svn/$ svnsync sync file://$(pwd)/mirror 

К сожалению, вы можете обнаружить, что это происходит также в 6-й редакции, но это стоит того - возможно, проблема в редакции особенно велика?

Если svnsyncтакже поездки, вы можете проверить проблемную ревизию в обычном режиме?

svn checkout -r 6 http://subversion.assembla.com/svn/$ ./my_repo 

ПРИМЕЧАНИЕ: возможно, что с версией 6 все в порядке, и проблема на самом деле с версией 7, так что попробуйте это тоже.