2014-09-18 2 views
1

Недавно мы перенесли один из наших репозиториев subversion, который был структурирован таким образом, чтобы он мог содержать только один проект (т. Е. Багажник и т. Д. Был в корневом каталоге), чтобы несколько проектов могли контролироваться в одном хранилище. Мы использовали опцию --parent-dir при вызове svnadmin load для перемещения всех файлов из репозитория в поддиректорию другого репозитория. Конечно, UUID больше не похож на старый репозиторий, поскольку на самом деле это новый репозиторий.SVN: Переместить локальную копию после миграции с помощью --parent-dir

Так первоначально хранилище URL в ствол проекта выглядело примерно так:

http://subversion/repo/trunk 

Теперь, как это:

http://subversion/repo/project/trunk 

Теперь мне нужно перенести свои локальные рабочие копии ствола. Я знаю, что могу взять однократный хит и повторную проверку из папки проекта, но это довольно большой репозиторий, и это довольно дорогое время и разумное место на диске.

Есть ли способ сообщить svn relocate не только игнорировать родословную, но и игнорировать тот факт, что UUID репозитория также изменился?

Возможно, есть способ обновить метаданные в папке .svn вручную, чтобы указать правильный URL-адрес репо? Может быть, есть способ просто проверить метаданные в папке .svn и поменять их в моих локальных рабочих копиях?

ответ

1
  1. Смена место жительство «... переписать работать метаданные копии URL, чтобы отразить только синтаксические изменения.», Таким образом: если вы изменили UUID, вы не можете перенести - новое хранилище является совершенно новым, не связанным с старым, место жительство воли fail
  2. «Конечно, UUID не то же самое, что и старый репозиторий» - правда ?! Вы можете комбинировать --force-uuid | --ignore-uuid на этапе загрузки, чтобы унаследовать по мере одного UUID из родительских-хранилищ
  3. Вы можете использовать svnadmin setuuid для того, чтобы изменить UUID существующего хранилища

здесь способ просто оформить мету -data в .svn папке

Да.

Вы можете оформить новый URL http://subversion/repo/project/trunk в новую рабочую копию --depth 'empty', получить пустой туалет с .svn папку в ней, скопировать | переместить все содержимое старого WC (кроме .svn папку со старыми метаданными) и синхронизации WC с репозиторием, используя svn up --set-depth 'infinity' (перегрузка старой глубины проверки для будущих операций)

+0

Хм, я попробовал ваше предложение с настройкой глубины на одном из моих выписок. Кажется, что все файлы снова проверяются. –