Управление зависимостями системы контроля версий в Visual Studio Team System - Использование проектов
ОГЛАВЛЕНИЕ
Использование проектов
Например, имеется групповой проект Visual Studio, содержащий совместно используемый несколькими групповыми проектами код библиотеки. Можно сохранять проект в рамках исходного группового проекта или создать отдельный групповой проект специально для совместно используемого проекта. Для второго варианта, когда создается общий совместно используемый проект, структура каталогов системы контроля версий Microsoft Visual Studio Team Foundation Server (TFS) следующая (рис. 6.1).

Рис. 6.1 Структура каталогов при общем совместно используемом проекте
Существует два варианта совместного использования проекта из собственного группового проекта
- Ветвление
- Отображение рабочего пространства
Ветвление
В сценариях совместного использования исходного кода предпочтительнее остановиться на ветвлении. Это позволяет перенести совместно используемый исходный код в разрабатываемый проект и зарегистрировать его в системе контроля версий группового проекта. В этом сценарии создается ответвление версии исходного кода из совместно используемого каталога в групповом проекте. При этом возникает конфигурация, объединяющая на стороне сервера исходный код из совместно используемого каталога и разрабатываемого проекта.
Изменения совместно используемого исходного кода распространяются в ходе процесса слияния ветвей. При этом решение о распространении изменений в совместно используемом исходном коде становится более явным, его проще тестировать, но также возникают некоторые дополнительные издержки. Кроме того, в этом случае существенно упрощается использование Team Build, поскольку отображение выполняется на стороне сервера; нет отображения на стороне клиента, которое должно дублироваться на сервере сборки.
Например, имеется два групповых проекта, $TeamProject1 и $Common, и Common содержит совместно используемый исходный код. Тогда в проекте, использующем
Common, создается ответвление совместно используемого каталога. Получаем следующую структуру каталогов TFS (рис. 6.2).

Рис. 6.2 Использование ветвления
Отображение рабочего пространства должно быть примерно следующим:
Папка в системе контроля версий | Локальная папка |
$/MyTeamProject1/Main/Source/ | C:\MyTeamProject1\Main\Source |
Структура каталогов рабочего пространства на стороне клиента должна быть следующей (рис. 6.3).

Отображение рабочего пространства
Если вы хотите, чтобы любые изменения совместно используемого кода сразу же поступали к разработчикам, т.е. избежать издержек на ветвление и слияние, можно создать отображение совместно используемого исходного кода общего проекта в рабочем пространстве разработчика. При этом создается конфигурация, которая объединяет исходный код из совместно используемого каталога с разрабатываемым проектом на стороне клиента.
Преимущество этого подхода в том, что все изменения совместно используемого проекта поступают в рабочее пространство разработчика при каждой загрузке последней версии исходного кода. Однако это затрудняет использование Team Build, поскольку отображение рабочего пространства является структурой на стороне клиента.
Например, имеется два групповых проекта, $MyTeamProject2 и $Common, и Common содержит совместно используемый исходный код. Чтобы использовать общий код, эти проекты отображены в одну и ту же структуру каталогов на жестком диске клиента. Структура каталогов рабочего пространства на стороне клиента должна быть следующей (рис. 6.4).

Рис. 6.4 Использование отображения рабочего пространства
Отображения рабочего пространства должны быть примерно следующими:
Папка в системе контроля версий | Локальная папка |
$/MyTeamProject2/Main/Source/ | C:\DevProjects\MyTeamProject2\Main\Source\ |
$/Common | C:\DevProjects\MyTeamProject2\Main\Source\ Common |
Более подробно читайте в статье «Working with multiple team projects in Team Build» (Как работать с несколькими групповыми проектами в Team Build) по адресу http://blogs.msdn.com/manishagarwal/archive/2005/12/22/506635.aspx.