Team Foundation Server - руководство программиста

В дополнение к моей предыдущей теме на

Как использовать SVN, Branch? Тег? Ствол?

Я хотел бы подробно рассказать о том, как программист должен/мог использовать TFS.

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

Итак, это мои интересные моменты, о которых я хотел бы узнать больше:

  • Как бы вы структурировали Рабочую область/Проект TFS для поддержки множества разных клиентов/проектов и, возможно, разных проектов для каждого клиента?
  • Разделение структуры папок на вышеуказанный проект на разные части, такие как Code, Documents → Architecture, Requirements и другие, что еще может быть и что будет хорошей широко используемой структурой папок?
  • Удобный просмотр репозитория; Снова структура папок здесь важна, однако этот момент больше нацелен на разных Исследователей для репозитория, а не только на встроенный Team Foundation Explorer.

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

Ответы

Ответ 1

Как уже упоминалось, руководство по шаблонам и практике является отличным руководством для всего использования TFS.

http://www.codeplex.com/TFSGuide

Однако, если вам захочется сосредоточиться на стратегиях ветвления, вы можете также проверить направляющие разветвления (особенно вторую версию), которые собирают VSTS Rangers.

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

http://social.msdn.microsoft.com/Forums/en/tfsversioncontrol/threads

Ответ 2

Вы упомянули об этом руководстве: http://www.codeplex.com/TFSGuide

Я только что написал руководство TFS для нашей компании, и мы выполнили большинство рекомендаций по наилучшей практике из этого руководства.

Используемая нами структура такова:

TeamProject1
    Main
        Source
            ClassLibrary1
            ClassLibrary2
            CommonCodeLibrary
            TeamProject1Web
    Releases
        Release1
            Source
                ClassLibrary1
                ClassLibrary2
                CommonCodeLibrary
                TeamProject1Web
        Release2
            Source
                ClassLibrary1
                ClassLibrary2
                CommonCodeLibrary
                TeamProject1Web
TeamProject2
    Main
        Source
            ClassLibrary1
            CommonCodeLibrary
            TeamProject2Web
    Releases
        Release1
            Source
                ClassLibrary1
                CommonCodeLibrary
                TeamProject2Web
        Release2
            Source
                ClassLibrary1
                CommonCodeLibrary
                TeamProject2Web
SharedTeamProject //this would represent a set of code that used in other team projects
    Main
        Source
            CommonCodeLibrary
    Releases
        Release1
            Source
                CommonCodeLibrary
        Release2
            Source
                CommonCodeLibrary

В принципе, мы разворачиваем проект Main\Source в ветки Release\Releasex, когда нужно время для выпуска.

Для кода, разделяемого несколькими проектами, мы создаем отдельный командный проект для этого кода, а затем мы встраиваем его в отдельные командные проекты. В приведенном ниже примере SharedTeamProject представляет собой общий код. Например, мы разделили CommonCodeLibrary на обучение основным папкам \Source для отдельных командных проектов.

Для выпусков конкретных клиентов вы можете просто создать для них соответствующие ветки выпуска.

Я думаю, что главное - придумать схему, согласно которой ваша команда соглашается (в основном), понимает и готова следовать. Удостоверьтесь, что схема документально подтверждена и что она соблюдалась. Согласованность в структуре является одним из ключей к успешной системе управления версиями.

Ответ 3

Вот что я думаю о ваших точках:

  • Прежде всего, есть уровень Team Project. Лучше всего следовать рекомендациям Microsoft: физические команды имеют отдельные командные проекты. Для изменений, связанных с клиентом, я делаю дополнительные ветки из ствола. Это позволяет объединить все исправления ошибок и независимые от клиента изменения в ветвях клиентов без лишних хлопот.
  • Не помещайте документы в исходный элемент управления, поместите их в папку "Документы", которые можно найти в Team Explorer. Для всей документации, которую я бы сказал, просмотрите Sharepoint.
  • Попробуйте сопоставить структуру вашей папки с иерархией пространства имен. Это делает вещи чрезвычайно удобными для просмотра.

Помните, что настройка TFS действительно зависит от размера команд, количества команд и размера кодовой базы.