Контроль исходного кода в TFS

Материал из devopswiki
Перейти к: навигация, поиск

Microsoft Team Foundation Server (аббр. TFS) — комплексное решение корпорации Microsoft, помогающее совместной разработке ПО в проектных командах. Продукт можно установить двумя способами: в форме локального приложения и в виде серверного решения, как часть Microsoft Visual Studio Team System (VSTS).

TFS объединяет в себе следующее:

  • система контроля версий
  • отслеживание статуса и изменений по проекту (ведение задач, дефектов, тест-кейсов и т. д.)
  • построение отчетов

Общие сведения

Общую информацию Вы можете получить, перейдя по следующим ссылкам:

TFS в Википедии

Контроль версий в TFS

Как Microsoft DevDiv использует TFS

Расширенные сведения

С дополнительной информацией об этой системе Вы можете ознакомиться ниже.

Microsoft Visual SourceSafe (VSS) (решение Microsoft для управления версиями кода предыдущего поколения) было основана на основе хранения файлов. В свою очередь, TFS сохраняет код и сведения об изменениях кода в БД Microsoft SQL. Репозиторий TFS для файлов с исходным кодом обеспечивает контроль версий с помощью инструмента под названием Team Foundation Version Control (TFVC).

Особенности TFS:

  • многократная блокировка файлов для изменения (англ. multiple simultaneous check-outs) - несколько человек одновременно могут редактировать один и тот же файл)
  • отложенное внесение правок (англ. shelving) - сохранение набора изменений, которые необходимо внести в будущем, другие участники проекта будут уведомлены об этих наборах, но если им намеренно не предоставлен доступ, то содержимое будет недоступно для просмотра и изменения
  • ветвление с последующим слиянием (англ. branching and merging)
  • урегулирование конфликтов в случае слияния различных веток
  • разграничение уровней доступа - независимо для разных файлов и папок
  • поддержка версионности документации
  • блокировка файлов - недопущение изменений другими пользователями
  • откаты - до предыдущих версий
  • операции подтверждения малых изменений (англ. atomic commits)

Система управления версиями связана с другими сущностями (англ. work items) в Microsoft Team System. Когда пакет изменений (англ. changeset) подтверждается (англ. check-in), у разработчика есть возможность связать свой код с сущностью или нескольким сущностями, например для описания правок, которые обеспечивает данный пакет изменений.

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

Избранные версии файлов можно отметить особыми метками (англ. labels), при этом все файлы, имеющие одну и ту же метку, входят в группу для релиза.

Ещё одним отличием от устаревшей VSS, является то, что репозиторий управления версиями в TFS не поддерживает привязку к файлу из нескольких папок исходного кода в файловой структуре . Также нет возможности «закрепить» (англ. pinned) файл. Это означает, что на один и тот же файл невозможно создать несколько ссылок из нескольких папок к различным его версиям для избегания внесения изменений в этот файл впоследствии.

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

TFVC может контролировать не только исходный код. Инфраструктура Microsoft SharePoint даёт возможность создать портал проекта, на котором размещаются проектные документы (планы, бизнес-требования, отчёты и другое), также с поддержкой версионности. Файлы в репозитории управления версиями могут быть связаны с любой из сущностей. Доступ к документам можно контролировать путём задания политики, которая ограничивает права доступа.