2008-12-02 6 views
3

Я администрирую репозиторий svn для проекта, в котором источник не был импортирован с одним каталогом верхнего уровня. В результате существует около 15 отдельных «проектов» вместо одного. Как я могу объединить их в одну папку, сохраняя историю изменений?Объединить несколько проектов SVN

* Совет: svn move не работает в этом случае.

[править] возгласов, контратип Combining multiple SVN repositories into one

+0

Смотрите этот вопрос тоже: http://stackoverflow.com/questions/267256/combining-multiple-svn-repositories-into-one – nickf 2008-12-02 03:29:55

+0

Спасибо, отметил в этом вопросе. – 2008-12-02 03:42:40

ответ

2

Если вы не заботитесь о сохранении всей истории одного из хранилищ, вы можете просто создать новый каталог в хранилище одного проекта, а затем импортировать другой ,

Если вы хотите сохранить историю обоих, вы можете использовать 'svnadmin dump' для сброса одного репозитория и 'svnadmin load' для загрузки его в другой репозиторий. Номера версий будут выключены, но у вас все еще будет история.

Скопировано здесь: http://subversion.tigris.org/faq.html#multi-merge

2

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

Я бы попробовал возиться с git-svn или что-то в этом роде. Импортируйте каждый «проект» в свой собственный репозиторий git, и они git тянут друг от друга. Разрешите любые конфликты и, после того, как все будет сделано, импортируйте историю обратно в Subversion.

Но ваша команда может быть лучше просто с помощью распределенного управления после завершения слияния всех сделок РЕПО в любом случае ...

0

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

  • дэвам нужны будут только проверить свой новый проект верхнего уровня (SVN будет автоматически следовать Svn: внешние и тянуть в других)
  • полная история версий будет сохранена, и новые изменения будут автоматически привязанный к соответствующему подпроекту
  • вам потребуется около 5 минут (создать новый проект верхнего уровня и запустить svn propedit svn:externals top_dir).