Как перенести новый SVN-репозиторий в более старую версию?
Я создал локальное хранилище, используя tortoiseSVN некоторое время назад. Теперь я хотел бы перенести репозиторий в свою учетную запись DreamHost.
Я переместил файлы, но, похоже, DreamHost использует более старую версию SVN.
когда я выдаю команду
svnadmin load 'repository dir'
это выплевывает
svnadmin: ожидаемый формат FS '2'; найден формат '4'
Решение?
2 ответа
Изменить: Ваше сообщение связано с тем, что вы создали целевой репозиторий с более новой версией сервера, а затем попытались загрузить дамп с более старой версией svnadmin
, Читайте ниже для правильной процедуры.
Я не понимаю svnadmin load
часть, вы создали файл дампа раньше с svnadmin dump
? Это ваш лучший вариант для портирования репозитория между версиями, так как обычно формат не должен меняться.
Итак, вы должны сделать для версии, использующей исходный репозиторий (новейшую версию SVN):
svnadmin dump <repos_path> > dump_file
и на сервере назначения (самая старая версия SVN):
svnadmin create <newrepos_path>
svnadmin load <newrepos_path> < dump_file
Вы можете использовать --deltas
опция в дампе, если у вас большой репозиторий, так как эти дампы могут стать довольно большими.
Если это то, что вы сделали, и это не удалось, не могли бы вы уточнить соответствующие версии и дать еще несколько деталей?
Если дамп не работает, вы также можете попробовать svnsync для переноса содержимого в ваш новый репозиторий: после создания репозитория DreamHost создайте простой хук pre-revprop-change, который просто выходит из 0, чтобы включить пропаны:
#!/bin/sh
exit 0
После этого вы можете начать:
svnsync init [DREAMHOST_URL] [OWN_REPO_URL]
svnsync sync [DREAMHOST_URL]
Тогда все ревизии будут перенаправлены в ваш новый репозиторий.