Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление версиями.doc
Скачиваний:
31
Добавлен:
03.04.2015
Размер:
346.62 Кб
Скачать

1. Назначение и принципы функционирования Microsoft Team Foundation Server

Microsoft Team Foundation Server (TFS) — это платформа для организации совместной работы группы разработчиков при управлении жизненным циклом приложений, разрабатываемых в среде Visual Studio. Сервер TFS предоставляет базовые услуги, такие как управление версиями, отслеживание рабочих элементов проекта и ошибок, автоматизация построения приложений, а также хранилище данных. Мощные средства составления отчетов и панели мониторинга позволяют получить представление об общем состоянии проекта и тенденциях его изменения в прошлом, помогают своевременно обнаруживать потенциальные проблемы и принимать взвешенные решения для возможного изменения параметров проекта. Кроме того, гибкие средства планирования и интеграция с Microsoft Project и Project Server помогают планировать проекты и управлять ими. Общая структура TFS представлена на Рис. 1.

Рис. 1. Структура TFS.

TFS работает по трёхуровневой архитектуре: клиентский уровень, прикладной уровеньиуровень данных.Клиентский уровень используется для создания и управления проектами, а также для доступа к хранимым и управляемым элементам проекта. На этом уровне TFS не содержит никаких интерфейсов пользователя, но предоставляет веб-сервисы, которые могут быть использованы клиентскими приложениями для самостоятельной интеграции в функциональность TFS. Эти веб-сервисы используются такими приложениями, как Visual Studio 2010. Сами веб-сервисы находятся на прикладном уровне. Прикладной уровень включает в себя веб-портал и репозиторий (хранилище) документации, основанный на Windows SharePoint 2010. Веб-портал, называемый Team Project Portal (портал командного проекта), выступает в роли центра взаимодействия для проектов, управляемых TFS.

Репозиторий используется как для элементов проекта (исходных файлов программы, документов для управления деятельностью рабочих групп и т.д.), так и для отслеживания их ревизий и генерации отчетов. Уровень данных, основанный на использовании Microsoft SQL Server 2010, обеспечивает хранение данных в репозитории документов. Уровень данных и уровень приложений могут существовать на различных физических или виртуальных серверах при использовании Windows 2008. Уровень данных не взаимодействует с клиентским уровнем напрямую, только через прикладной уровень.

Большая часть действий в TFS происходит с «рабочими элементами» проекта. Рабочими элементами называются отдельные единицы (шаги) процесса реализации проекта, выполняемые поочередно. Рабочие элементы могут быть нескольких типов, например Ошибка, Задача, Требование качества, Сценарий и т. д. Эти элементы хранятся в формате XML и могут быть легко модифицированы путем добавления новых атрибутов или создания новых элементов. Каждый рабочий элемент имеет соответствующие методики контроля, которые определяют, кому какие именно элементы доступны и какие действия он с ними может производить (просмотр, редактирование, создание, удаление и др.). Также подразумевается использование уведомлений и возможность ведения файлов протокола для отслеживания истории всего процесса разработки проекта, обращений членов рабочей группы к элементу или его изменений. Также предусматривается дополнительное уведомление определенных членов рабочей группы при наступлении определенных событий.

Проект включает в себя пользовательские рабочие элементы, версии (ветки) исходного кода, отчеты, управляемые TFS. При создании нового проекта нужно выбрать шаблон программной разработки, который впоследствии сменить нельзя. TFS включает в себя несколько наиболее распространенных шаблонов. Выбор шаблона наполняет проект заранее предопределенными элементами, такими как, например, роли и полномочия членов рабочей группы. При этом автоматически формируются шаблоны различной документации. Статус элементов проекта может автоматически обновляться при изменении рабочих элементов.

TFS можно интегрировать с Microsoft Excel для создания и отслеживания элементов проекта. Статус элементов в этом случае можно указывать и редактировать непосредственно в Excel, а итоговые таблицы могут обрабатываться TFS, который будет импортировать данные с учетом особенностей управления данным проектом. Кроме того, его также можно интегрировать с Microsoft Project 2010 в качестве клиентской части управления проектом. Элементы проекта можно экспортировать в книги Excel для дальнейшего анализа данных.

TFS не содержит пользовательского интерфейса, но обеспечивает работу веб-сервисов, которые используются таким клиентскими приложениями как Visual Studio Team System (VSTS). Тем не менее, TFS имеет в своем составе приложение Team Foundation Client (TFC), которое может использоваться без VSTS. TFC тоже взаимодействует с соответствующими веб-сервисами. TFS предоставляет клиентский API, который может быть использован клиентским приложением для доступа к его средствам. Также поддерживается язык описаний веб-сервисов WSDL, на тот случай если приложению потребуется непосредственный вызов веб-сервисов. В качестве дополнения доступно приложение Visual Studio Team System Web Access, предназначенное для решения аналогичных задач.

2. Система управления версиями Microsoft Team Foundation Server

TFS реализует репозиторий управления исходным кодом, называемый Team Foundation Version Control (TFVC). При этом весь код, равно как и записи обо всех изменениях кода хранятся в базе данных под управлением SQL Server. Поддерживаются такие особенности, как например, одновременная множественная блокировка кода для изменения (multiple simultaneous check-outs). Это значит, что один и тот же файл одновременно могут редактировать несколько человек.

Реализовано разрешение конфликтов, откладывание внесения изменений (shelving). В последнем случае имеется в виду сохранение набора запланированных изменений без их подтверждения в системе контроля версий, причем другие пользователи могут видеть эти наборы, но доступа к ним без явно предоставленного разрешения не получат.

Имеются возможности ветвления и слияния, а также установки уровней доступа на любом элементе дерева версий исходного кода. Очевидно также, что можно отслеживать версии документации, блокировок, откатов и операций подтверждения атомарных изменений (atomic commits).

Механизм контроля исходного кода напрямую связан с рабочими элементами Team System. При подтверждении изменений (check-in) в "наборе изменений" (changeset) разработчик может определять взаимосвязь его кода с одним или более определенными рабочими элементами для указания какие именно проблемы решает данное подтверждение (check-in).

Администраторы TFS могут указывать политики подтверждений (check-in policies), которые предусматривают удовлетворение определенных требований. Политика может потребовать определения рабочих элементов, связанных с данным подтверждением, или обновление статуса связанных рабочих элементов. Например, указание ошибки как «исправленной» при внесении изменений в код, исправляющих данную ошибку. Отдельные версии файлов могут быть отмечены специальными метками, тогда все файлы с одинаковыми метками образуют релиз-группу.

TFVC поддерживает ветвление версий на всех уровнях исходного кода, а также для отдельных файлов и каталогов, причем каждая ветвь поддерживается отдельно. Несколько ветвей можно объединить в одну с указанием порядка (алгоритма) разрешения конфликтов при слиянии двух ветвей одного файла. В этом случае программа либо автоматически согласует различия, либо отметит их для ручной проверки, если сама с ними не справится. Слияние может быть выполнено и на уровне набора изменений (changeset). Успешное слияние автоматически отмечается (check out) в репозитории контроля кода.

Возможности TFVC не ограничены лишь исходным кодом, с помощью встраивания инфраструктуры Windows SharePoint он обеспечивает поддержку библиотеки версий документов проекта, включая планы проекта, требования, анализ специфики проекта и другие. Все документы в репозитории контроля кода могут связываться с любым рабочим элементом, а доступ к ним может контролироваться за счет введения политики доступа.