Alexey Petriashev
unread,Mar 24, 2011, 9:44:52 AM3/24/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to moscow...@googlegroups.com, Александр Пчелин
У нас используется такая система:
Проекты организованы так:
Физическая структура проекта:
TeamProject
build : сборочные скрипты
lib : библиотеки
common : здесь лежат бинарники общих компонентов
src : исходники проектов
tools : инструменты, например NAnt
TeamProject.sln
Логическая структура в TFS без бранчей:
$TeamProject
build
lib
Nunit-2.5.8
Log4net-1.2.10
common
Component1 : это бранч от $SharedComponents/Component1/bin
Component2 : это бранч от $SharedComponents/Component2/Main/bin
src
TeamProject.Core
TeamProject.BlaBlaBla
tools
TeamProject.sln
SomeElse.sln
Логическая структура в TFS c бранчами:
$TeamProject
Dev
build,
lib
Nunit-2.5.8
Log4net-1.2.10
common
Component1 : это бранч от $SharedComponents/Component1/bin
Component2 : это бранч от $SharedComponents/Component2/Dev/bin
src
tools
TeamProject.sln
SomeElse.sln
Main
build
lib
common
Component1 : это бранч от $SharedComponents/Component1/bin
Component2 : это бранч от $SharedComponents/Component2/Main/bin
src
tools
TeamProject.sln
SomeElse.sln
Логическая структура общих компонентов в TFS:
$SharedComponents
Component1 (без бранчей)
bin : здесь хранятся скомпилированные бинарники
build : здесь скрипты для сборки bin
lib
src
Component2 (с бранчами)
Dev
bin, build, lib, src
Main
bin, build, lib, src
Процесс работы с общими компонентами:
Использование:
Нужно отбранчевать папку bin нужного компонента в папку проекта common/ИмяКомпонента,
например $SharedComponents/Component1/bin -> $TeamProject/common/Component1
Обновление компонента в зависимом проекте:
Нужно слить папку bin компонента в папку проекта common/ИмяКомпонента (merge,checkin)
$SharedComponents/Component1/bin -> $TeamProject/common/Component1
Работа с общим компонентом:
- Добавление фичи
- тестирование, сборка
- обновление папки bin
- можно повесить Label, чтобы потом можно было вытащить исходники или бинарники нужной версии.
Что мы получаем:
- Такая система позволяет независимо работать над компонентами и проектами, которые из используют.
- Различные проекты, кроме того могут использовать различную версию общего компонента.
- Проект сам решает, когда ему обновить версию компонента (новая версия компонента может сломать существующий оттестированный функционал)
- Все проекты являются независимыми единицами. Такие проекты можно забрать на любую машину с использованием простого биндинга и все должно собираться и работать. Это нужно, например, для Continiuos Integration