Вопрос

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

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

Редактировать] Whoops, Dupe Объединение нескольких репозиториев SVN в один

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Но вашей команде, возможно, будет лучше использовать распределенный контроль после того, как вы все равно закончите объединение всех репозиториев...

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

  • разработчикам нужно будет только проверить ваш новый проект верхнего уровня (svn автоматически последует за svn:externals и подтянет остальные)
  • полная история версий будет сохранена, а новые изменения будут автоматически внесены в соответствующий подпроект.
  • реализация займет у вас около 5 минут (создайте новый проект верхнего уровня и запустите svn propedit svn:externals top_dir).
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top