Переместить одну папку SVN в новый репозиторий - как?

У меня есть репозиторий SVN, содержащий несколько папок верхнего уровня, по одной на проект. Внутри каждой папки проекта есть обычный ствол, ветки, теги.

Мне нужно переместить одну из этих папок проекта в отдельный независимый репозиторий для экспорта и последующего импорта на другой сервер. Новый репозиторий для одного проекта должен содержать только историю редакций для этого проекта, а не для других проектов.

Есть идеи, как лучше действовать?

Сервер - это VisualSVN Server в Windows, хотя это не должно иметь никакого значения.


person tomfanning    schedule 05.04.2011    source источник


Ответы (3)


Вы можете использовать svnadmin dump, направить вывод через svndumpfilter, а вывод через svnadmin load.

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

svnadmin load позволяет вам указать каталог в репозитории, в котором вы хотите сохранить вывод.

Взгляните на раздел Обслуживание репозитория электронного руководства.

person David W.    schedule 05.04.2011
comment
Идеальное решение. svnadmin dump i:\repos\myrepo > myrepo.dmp, затем svndumpfilter include MyProject --renumber-revs > filtered.dmp < myrepo.dmp, затем svnadmin load i:\repos\MyNewEmptyRepo < filtered.dmp - person tomfanning; 05.04.2011
comment
Используйте --quiet для более быстрого дампа и фильтрации (он не выводит данные на консоль) - person ChRoNoN; 07.05.2015

  1. В TortoiseSVN у вас есть возможность экспортировать проект из репозитория (удаляет информацию svn).
  2. Создайте новое репо на сервере
  3. Оформить заказ на новое репозиторий SVN на свой диск
  4. скопируйте экспортированные файлы в новое репо
  5. Совершить.

Готово, новое чистое репо.

person PseudoNinja    schedule 05.04.2011
comment
Отлично, но история версий не сохраняется. - person tomfanning; 05.04.2011
comment
Я думаю, что большинство разработчиков захотят сохранить историю своих версий. - person Ed of the Mountain; 27.08.2015
comment
Я не согласен, история версий - необходимость. - person PseudoNinja; 27.08.2015

Одна вещь, которую нужно сделать, - это взять последовательность svn-дампов проверок, сделанных для этой папки. Назовите их по номеру ревизии. Теперь в новом репозитории SVN импортируйте их по порядку. Попробуйте его на тестовом репо, чтобы сгладить изгибы, если таковые имеются, но это должно быть выполнимо. Используйте команду svndump, подробно описанную здесь.

person omermuhammed    schedule 05.04.2011