Подтвердить что ты не робот

Как сбросить один проект из репозитория SVN, который содержит несколько проектов?

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

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

4b9b3361

Ответ 1

Для этого вы можете использовать утилиту 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

Ответ 2

Просто небольшое дополнение к ответу @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.