У меня есть хранилище, которое я переношу на новый сервер Subversion, используя svnadmin dump и load. Я делаю это в 2 этапа, как описано в шагах ниже:
- repoX в редакции 100
- Я выполняю svnadmin dump repoX> repoX.dump
- Я выполняю svnadmin create repoX на новом сервере
- Я выполняю svnadmin загрузочный repoX
Пока все это работает, и svnadmin verify говорит, что все в порядке. Затем я пытаюсь обновить репо (это происходит до окончательного отключения, все еще тестируемого на этом этапе).
- Далее я выполняю svnadmin dump repoX -r 101: head --incremental> repoX.dump
- Я снова выполняю загрузку svnadmin repoX
Тогда я получаю сообщение о том, что некоторый путь в repoX не существует. Поэтому я снова попробовал добавочный дамп, используя:
- svnadmin dump repoX -r 100: head --incremental> repoX.dump
На этот раз все работает и проверено нормально.
Однако .... есть другие репо, например репо. Когда я пробую второй механизм (переход к ревизии 100 в первом дампе, затем получение обновленного дампа из ревизии 100), я получаю еще одну ошибку, говоря, что каталог уже существует! Некоторые репозитории работают в одну сторону, некоторые работают в другую, все они не работают, когда я делаю это одинаково.
Итак, что я хочу знать, так это правильный механизм от дампинга до ревизии 100 (например), а затем дамп остальных репо в голову во втором цикле. Я провел утро, читая, читая и читая, но я даже не могу найти пример того, что я делаю, хотя я знаю, что это можно сделать.
Я не могу обойтись без единого файла дампа, поскольку мы говорим о 150-гигабайтных данных, распределенных по 50 репозиториям, которые физически не могут быть выгружены, переданы и загружены за одну ночь. Этот механизм гарантирует, что мы можем переместить 95% данных до окончательного переключения ... но похоже, что моя теория может быть ошибочной.
Если вам нужна дополнительная информация, просто спросите.
Хорошо. Я снова начал весь процесс в тестовом регионе, и, похоже, он работал нормально. Я продолжу тестирование сегодня, но на данном этапе похоже, что оно работает. Кто знает, что я сделал изначально, чтобы вызвать эти ошибки.