Слияние части репозитория SVN с другим репозиторием с историей

Мне нужны репозитории svn, скажем A и B. Я хочу добавить некоторые каталоги из B в A вместе с историей. Возможно ли это сделать. Для большей ясности приведу следующий сценарий.

    repo A                                repo B
       \branches                          \branches 
             \sub-branch1                      \sub-branch B1
              \sub-branch2                      \sub-branch B2 
       \trunk                             \trunk 

Что я хотел бы сделать, так это добавить sub-branch2 в ветки репо A. Как это сделать?

заранее спасибо


person thetna    schedule 07.04.2011    source источник


Ответы (2)


Получите дамп подсети 2 репоБ:

  svnadmin dump /location/of/repoB | svndumpfilter include subbranch2 > my.dump

Слить дамп по веткам репоА:

  svnadmin load /location/of/repoA --parent-dir branches < my.dump
person vpk    schedule 07.04.2011
comment
Я пробовал, но получил катастрофу, может быть, я сделал что-то не так. Моя предыдущая история потеряна. Указывает ли parent-dir только каталог верхнего уровня. Моя реальная архитектура репозитория на 1 уровень глубже, чем я упомянул в одном вопросе. Можете ли вы мне посоветовать, могу ли я отменить процесс? - person thetna; 07.04.2011
comment
Что вы имеете в виду под возвратом? Просто удалите ненужный каталог из repoA - в repoB не было внесено никаких изменений. В процессе загрузки должно быть отображено несколько сообщений, которые помогут вам понять, что пошло не так. - person vpk; 07.04.2011
comment
пустая версия для заполнения. - это ошибка, которую я получил, и каталог также не добавлен в указанный каталог. Не могли бы вы сказать мне, в чем причина? - person thetna; 07.04.2011
comment
Вы можете попытаться удалить пустые ревизии, дополненные этой командой: svnadmin dump / location / of / repoB | svndumpfilter --drop-empty-revs --renumber-revs include subbranch2 ›my.dump - person vpk; 07.04.2011

Да, это возможно. Вам необходимо использовать svnadmin dump и svnadmin load.
Для получения дополнительной информации посмотрите здесь: http://blogs.nuxeo.com/dev/2006/04/dump-load-svn-repositories-using-svnadmin-svndumpfilter.html

person Daniel Hilgarth    schedule 07.04.2011
comment
Я прочитал статью, она очень полезна, но сомневаюсь, как указать расположение выгружаемого файла. Я думаю, что svnadmin load ‹p поместит выгруженный файл в корневую папку. Как я могу управлять этим местоположением, чтобы сохранить его в желаемом месте?› - person thetna; 07.04.2011
comment
прочтите мой ответ, чтобы получить ответ. вы можете указать родительский каталог в команде загрузки svnadmin. - person vpk; 07.04.2011
comment
Используйте параметр --parent-dir для команды загрузки. См. Пример ответа jjossarin. - person Daniel Hilgarth; 07.04.2011