Структура репозитория SVN и общие сборки - PullRequest
0 голосов
/ 05 июня 2009

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

Мне любопытно узнать, как вы, ребята, имеете дело с общими сборками? У вас есть несколько их копий, которые распространяются на разные папки lib в транке? У вас есть какой-то процесс сборки, который автоматически обновляет папки lib при сборке?

Как вы, ребята, справляетесь с этим, где находитесь?

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 июня 2009

Мы версии всех наших основных библиотек.

Так, например, SVN выглядит так:

/ репо / lib1 / багажник /

/ Репо / Lib1 / теги / 1,0

/ Репо / Lib1 / теги / 1,1

/ репо / lib1 / филиалы

...

Это позволяет избежать ситуации, когда вы нарушаете BC, или что-то еще , и требует обновления трех других проектов, которые используют библиотеку.

Более того, мы используем svn:externals - ссылку эти библиотеки в проекты.

/ Репо / Проект1 / теги / 1,0

/ репо / project1 / багажник / библиотека

...

svn propedit svn:externals /repo/project1/trunk/library

Введите следующее:

lib1 svn: //host/repo/lib1/tags/1.1

... и передайте изменения.

Сам проект1 также следует соглашению (теги для выпусков и т. Д.).

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

Мы делаем все наше развертывание прямо из Subversion (через capistrano ). Это в основном просто проверка тега, и готово. Даже позволяет горячее исправление. Если вы позволите мне pimping мой собственный блог - я много писал на эту тему ("развертывание из SVN").

НТН!

1 голос
/ 05 июня 2009

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

...