Отрезать часть хранилища Subversion? - PullRequest
2 голосов
/ 10 ноября 2011

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

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

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

1 Ответ

2 голосов
/ 10 ноября 2011

Сначала получите актуальный дамп репозитория SVN:

svnadmin dump repo/

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

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

Затем создайте новый репозиторий идобавьте каталоги trunk, tags и branch (шаг после этого завершится неудачей без этих 3 каталогов):

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

...