Отрезать часть репозитория Subversion?

У меня есть репозиторий Subversion, в котором есть несколько проектов. Я хотел бы «отрезать» один или несколько из этих проектов и переместить их в их собственные репозитории, в идеале с полной точностью (т.е. сохраняя всю историю версий нетронутой).

Это вообще возможно? Если да, то каков метод?

РЕДАКТИРОВАТЬ / Уточнение: я знаю о ветках и тегах. Я не об этом спрашиваю. Я хочу взять существующий репозиторий и разделить его на несколько меньших репозиториев, возможно, на разных физических носителях.


person Tim Long    schedule 09.11.2011    source источник


Ответы (1)


Сначала получите обновленный дамп вашего репозитория SVN:

svnadmin dump repo/

Затем отфильтруйте репозиторий, используя что-то вроде

svndumpfilter include --drop-empty-revs --renumber-revs trunk/myProj1 trunk/myProj2

Затем создайте новое репо и добавьте в каталоги ствола, тегов и веток (следующий шаг завершится ошибкой без этих трех директорий):

svnadmin create newRepo
svn co file:///tmp/newRepo newRepo-checkout
svn mkdir newRepo-checkout/trunk/ newRepo-checkout/branches/ newRepo-checkout/tags
svn commit -m "Core directory structures created" newRepo-checkout/

С этими тремя каталогами теперь можно загрузить дамп:

svnadmin load newRepo

После завершения загрузки вы можете начать использовать новое репо!

Несколько ссылок на руководства:

http://grumbel.blogspot.com/2008/09/splitting-svn-repository.html
http://2tbsp.com/node/88

person chown    schedule 09.11.2011
comment
Да, но я не думаю, что вы поняли вопрос. В вашем примере показано, как создать ветку в том же репозитории, что совсем не то, о чем я просил. Я хочу взять существующий репозиторий и разделить его на несколько меньших репозиториев (возможно, на физически разных носителях). - person Tim Long; 10.11.2011
comment
Ах, в этом случае вам нужно получить дамп репо, затем использовать svndumpfilter, чтобы получить из репо только то, что вы хотите, а затем с новым разделенным репо использовать svn load для загрузки отфильтрованного дампа. Вот несколько хороших руководств: grumbel.blogspot.com/2008/09/ splitting-svn-repository.html, mikemason.ca/blog/2005/10/ - person chown; 10.11.2011
comment
Обновленный ответ, чтобы предоставить шаги - person chown; 10.11.2011
comment
+1 Спасибо, попробую и приму ваш ответ, когда он у меня заработает. - person Tim Long; 12.11.2011