Как вывести один проект из репозитория SVN, который содержит несколько проектов? - PullRequest
41 голосов
/ 03 декабря 2008

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

Я смог использовать svnadmin dump для выгрузки всего репозитория и svnadmin load в другой репозиторий, но я не могу найти способ выгрузки только одного проекта из исходного репозитория, поэтому я могу загрузить его в новый. Это возможно? Если так, то как?

Ответы [ 2 ]

64 голосов
/ 03 декабря 2008

Вы можете использовать утилиту svndumpfilter , чтобы сделать это. Книга SVN содержит хорошее объяснение того, как это сделать.

Например, одним из способов будет:


$ svnadmin dump /path/to/repo 
     | svndumpfilter include /proj > dump-file
$ svnadmin create /new/proj/repo
$ svnadmin load --ignore-uuid /new/proj/repo < dump-file
$ svn rm file:///path/to/repo/proj
0 голосов
/ 20 октября 2014

Просто небольшое дополнение к ответу @Avi и комментарию @Kit.

Если вы используете svndumpfilter, вы можете потерять коммит, необходимый для загрузки репозитория ( source ).

В моем случае:

cat dump | svndumpfilter --drop-empty-revs --renumber-revs include trunk/project > project.dump 
svnadmin load --ignore-uuid /opt/svn/newlocation < project.dump
<<< Started new transaction, based on original revision 1 
svnadmin: File not found: transaction '0-0', path 'trunk/project'

Решением было сначала зафиксировать верхний каталог trunk.

...