Чтобы перенести репозиторий с одного сервера на другую версию, необходимо выполнить следующие шаги:
Шаг 1. Скопируйте все версии репозитория в файл дампа. У вас могут быть тысячи версий в существующем хранилище. Таким образом, вы можете создать файл дампа, используя следующий скрипт.
dump.sh
# Here “i” is the version starting number, and “j” is the maximum version number of your existing #repository.
j=4999;
for ((i=0;i<=$j;i++));
do
# your-unix-command-here
echo $i
svnadmin dump <old_server_repository_location > -r $i –incremental > <dump_location>/$i.dump
done
В приведенном выше сценарии вы можете получить полный дамп старого хранилища в зависимости от наличия места или вы можете получить дамп за короткий промежуток времени (т. Е. От 0-5000, затем от 5001-10000 и т. Д.)
Шаг 2: Запустите приведенный выше скрипт, используя приведенную ниже команду. В зависимости от версии ядра вам необходимо выполнить любой из двух приведенных ниже запросов.
$ bash dump.sh > stdout.sh
$ ./sh dump.sh > stdout.sh
Это запишет все команды, которые вы должны были выполнить с помощью вышеуказанной команды, в файл stdout.sh. Вы можете отслеживать этот файл для дальнейшего использования.
Шаг 3. Проверьте, открыт ли брандмауэр для порта № 22 между старым и новым сервером. Если это не открыто, попросите вашего администратора сделать это доступным.
Шаг 4: Теперь скопируйте все файлы дампа, сгенерированные из старого репозитория SVN, на новый сервер с помощью следующей команды.
$ sftp xxxx@<new_server>
Connecting to <new_server>…
Password:
sftp> mput *.dump <new_server>/dump_location
В приведенной выше команде xxxx
- это пользователь, который выполняет операцию. В процессе выполнения sftp вы копируете файлы дампа со старого сервера на новый.
Шаг 5: Создать новый репозиторий для нового Сервера
$ svnadmin create <new_repository>
Шаг 6: Теперь используйте приведенный ниже скрипт для загрузки всех файлов дампа.
load.sh
# Here “i” is the version starting number, and “j” is the maximum version number of your existing #repository.
j=4999;
for ((i=0;i<=$j;i++));
do
# your-unix-command-here
echo $i
svnadmin load –bypass-prop-validation <new_repository> < dump_location /$i.dump
done
Просто выполнив шесть простых шагов, описанных выше, вы сможете перенести существующий репозиторий в новый репозиторий. Благодаря этому процессу вам не нужно беспокоиться о поврежденных ревизиях существующего хранилища.