Как перенести новый 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]

Тогда все ревизии будут перенаправлены в ваш новый репозиторий.

Другие вопросы по тегам