Объединение репозиториев SVN - PullRequest
3 голосов
/ 30 сентября 2011

У меня есть несколько репозиториев SVN, которые я пытаюсь объединить в одно.

Я сделал пару svnadmin dump {old-repo} | svnadmin load --parent-dir {new-subfolder} {new-repo} прогонов, чтобы объединить их все.Однако есть ли способ указать рабочие копии на новую ревизию?

Если я сделаю svn switch --relocate {old-repo} {new-repo}, я получу сообщение об ошибке:

svn: хранилище в '{new-repo} 'has uuid' 70567957-ca9a-40a3-95c2-c7c7f5304040 ', но туалет имеет' e7f76c56-4d0d-472c-a1f0-6eac23a5d238 '

Я не думаю, что этолегко к новой чистой проверке.Потому что большинство WC имеют локальные изменения (например, учетные данные БД / образы пользователей).И даже есть (обязательный) каталог кеша с миллионами миниатюр изображений, для восстановления которых требуется +/- 2 дня.

Могу ли я заставить svn игнорировать uuid и просто принять новое местоположение?

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

На новом сайте обмена стеками (Unix & Linux) есть ответ под названием svn switch --relocate: неправильный uuid? , который объясняет, как установить UUID нового репозитория. Это имеет следующие последствия:

  • Вы можете установить только 1 UUID, но у вас есть n старых репозиториев. Вы должны решить, какой из них использовать, и для этого может сработать изменение UUID.
  • Все остальные должны будут оформить новый заказ.

Извините, полного решения, похоже, нет.

0 голосов
/ 30 сентября 2011

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

Создать файл патча:

$> svn diff > ~/old_repo.patch

заказ:

$> svn co {new_repo}

Применить патч:

$> cd new_repo
$> patch -p0 -i ~/old_repo.patch
...