Поделиться через


Выбор правильного элемента управления версиями для проекта

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Независимо от того, является ли проект вашего программного обеспечения большим или малым, рекомендуется как можно скорее использовать контроль версий. Azure Repos поддерживает два типа управления версиями: Git и система управления версиями Team Foundation (TFVC).

Какую систему управления версиями следует использовать?

В качестве поставщика системы управления версиями по умолчанию для новых проектов используется GIT. Вы должны использовать Git для управления версиями в проектах и начать перемещение существующих проектов TFVC в Git. TFVC считается полностью функциональным. Azure DevOps будет поддерживать совместимость с TFVC, но Git получит все будущие инвестиции.

Репозитории TFVC можно использовать с Git в одном проекте, поэтому легко добавить TFVC позже, если требуется централизованное управление версиями. Чтобы настроить новый тип репозитория для существующего проекта , используйте эти инструкции.

Git (распределенная система)

Git — это распределенная система управления версиями. У каждого разработчика на компьютере разработки есть копия всего репозитория исходного кода. Разработчики могут зафиксировать каждый набор изменений на компьютере разработки и выполнять операции управления версиями, такие как журнал и сравнение без сетевого подключения. Ветви легковесные. При необходимости переключить контексты можно создать частную локальную ветвь. Вы можете быстро переключаться с одной ветви на другую для использования различных вариантов базы кода. Позже можно объединить, опубликовать или удалить ветвь.

Примечание.

Git в Visual Studio, Azure DevOps Services и Azure DevOps Server — это стандартный Git. Visual Studio можно использовать со сторонними службами Git, а также использовать сторонние клиенты Git с Azure DevOps Server.

Дополнительные сведения см. в статье Git и Azure Repos.

TFVC (централизованный)

Подсистема контроля версий Team Foundation (TFVC) — это централизованная система управления версиями. Как правило, члены команды имеют на своих компьютерах разработки только одну версию каждого файла. Исторические данные ведутся только на сервере. Ветви основаны на путях и создаются на сервере.

TFVC имеет две модели рабочих процессов:

  • Серверные рабочие области Перед внесением изменений члены команды открыто извлекают файлы. Большинство операций требуют, чтобы разработчики были подключены к серверу. Эта система упрощает блокировку рабочих процессов. Другие системы, которые работают таким образом, включают visual Source Safe, Perforce и CVS. С помощью рабочих областей сервера можно масштабировать до очень больших баз кода с миллионами файлов на ветвь и большими двоичными файлами.

  • Локальные рабочие области. Каждый член команды принимает копию последней версии базы кода с ними и работает в автономном режиме по мере необходимости. Разработчики проверяют свои изменения и разрешают конфликты при необходимости. Другая система, которая работает таким образом, — Subversion.

Дополнительные сведения см. в статье "Что такое система управления версиями Team Foundation?"

Переход с TFVC на Git

Если у вас есть репозитории TFVC, их можно перенести в репозитории Git с помощью средства git-tfs. Это средство позволяет перенести репозиторий TFVC в репозиторий Git всего за несколько команд.

Возможности Git и TFVC

В следующей таблице приводится сводка о том, как TFVC и Git поддерживают основные возможности управления версиями.

Возможность

TFVC

Git


Изменения

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

После его регистрации можно изменить комментарий набора изменений. Вы можете связать наборы изменений с рабочими элементами и связать их с завершенными сборками.

Участники группы могут одновременно изменять файлы на своих компьютерах разработки. Вы создаете коммиты на вашем локальном компьютере независимо от их отправки в команду. Когда будете готовы, перед отправкой на сервер необходимо выполнить команду pull для получения последних коммитов. При вытягивании может быть прервано конфликтами.

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

Вы можете изменить и объединить локальные коммиты из командной строки.

Ветвление

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

Изменения в каждой ветви не зависят друг от друга, поэтому их не нужно проверять перед переходом с одной ветви на другую. Для объединения между ветвями одноуровневого уровня требуется бессерверное слияние.

Вы можете получить визуализации структур филиалов и в которых были объединены наборы изменений.

См. раздел "Использование ветвей для изоляции риска в система управления версиями Team Foundation".

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

См. раздел "Использование ветвей Git" для переключения контекстов, приостановки работы и изоляции риска.

Разрешение конфликтов

Возможно, вам придется разрешать конфликты при получении, фиксации, слиянии или извлечении из набора полок. Вы можете устранить все типы конфликтов в Visual Studio.

При извлечении или слиянии может потребоваться устранить конфликты. Вы можете разрешить конфликты содержимого в Visual Studio или из командной строки.

Хранилище файлов

Вы можете проверить большие двоичные файлы. Вы также можете использовать NuGet в сочетании или в качестве альтернативы.

Вы можете проверить небольшие двоичные файлы, как и обычные файлы. При работе с большими двоичными файлами используйте Git-LFS для хранения больших двоичных файлов в Azure Repos.

История

Журнал файлов не реплицируется на клиентском компьютере разработки, поэтому его можно просматривать только при подключении к серверу. Журнал можно просмотреть в Visual Studio и на веб-портале. Вы можете аннотировать файлы, чтобы увидеть, кто изменил строку и когда её изменили.

Журнал файлов реплицируется на клиентском компьютере разработки и может просматриваться даже при отсутствии подключения к серверу. Историю можно просмотреть в Visual Studio и на веб-портале. Вы можете добавлять аннотации к файлам, чтобы увидеть, кто и когда изменил строку.

Пометьте файлы

Вы можете применить метки к версии одного или нескольких файлов из Visual Studio или командной строки. Каждый файл может иметь метку, примененную к другой версии.

Теги можно применить к отдельным коммитам из командной строки. Просмотр тегов в окне истории Visual Studio.

Откат изменений

Вы можете отменить коммит.

Масштаб

Вы можете работать над небольшими или очень крупными проектами с помощью локальных рабочих областей. Поддержка крупномасштабных проектов (миллионов файлов на ветвь и больших двоичных файлов) с помощью рабочих областей сервера.

Вы можете быстро начать небольшие проекты. Вы можете масштабировать до очень крупных проектов, но необходимо заранее спланировать модульную структуру базы кода. В проекте можно создать несколько репозиториев.

Сервер

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

Возможность

TFVC

Git


Сервер

Сервисы Azure DevOps, Сервер Azure DevOps

Службы Azure DevOps Services, Azure DevOps Server и сторонние службы Git

Оповещения

Члены команды могут получать электронные уведомления, когда коммиты отправляются на сервер.

Возможность аудита

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

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

Сборки (автоматизированы с помощью TFBuild)

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

Большинство возможностей TFBuild можно использовать для создания одного проекта одновременно и одного или нескольких репозиториев.

Проверки кода

См . день в жизни разработчика devops: приостановка работы, исправление ошибки и проведение проверки кода. Для более простых обсуждений вы также можете комментировать и отправлять сообщения электронной почты о наборе изменений на веб-портале.

Ознакомьтесь с pull-реквестами. Для более простых обсуждений, вы также можете комментировать коммиты и отправлять электронные письма через веб-портал.

Файлы

Каждый проект содержит все файлы в одном корневом пути (например, $/FabrikamTFVC). Разрешения можно применять на уровне файла. Файлы можно заблокировать.

Вы можете просматривать свои файлы на веб-портале и с помощью Обозревателя исходного кода в Visual Studio.

Проект существует только на одном сервере.

Каждый проект может содержать один или несколько репозиториев Git, а каждый репозиторий Git может содержать одну или несколько ветвей. Наиболее детализированные разрешения, которые можно применить, относятся к репозиторию или ветви. Файлы не могут быть заблокированы.

Вы можете просматривать файлы на веб-портале.

Вы можете отправлять фиксации в несколько удаленных репозиториев, например в репозиторий проекта и на веб-сайт, размещенный в Azure.

Качественные ворота

Вы можете использовать сборки непрерывной интеграции (CI), сборки с проверкой при регистрации и политики при регистрации.

Вы можете использовать сборки CI и встроенные сборки с помощью политик ветвей.

Клиент

В следующей таблице перечислены поддерживаемые клиентом функции в зависимости от выбранной системы управления версиями.

Возможность

TFVC

Git


клиентское программное обеспечение;

Visual Studio

Visual Studio, Visual Studio Code, Eclipse и другие сторонние средства

Файлы

Вы можете просматривать файлы с помощью Обозревателя исходного кода в Visual Studio или используя проводник Windows или командную строку.

Вы можете просматривать файлы с помощью Windows проводник или командной строки.

Управление работой на компьютере разработки

Ожидающие изменения и страницы "Моя работа" в Visual Studio Team Explorer.

«Страницы изменений, коммитов и веток».

Приостановка работы

Вы можете приостановить работу с страницы "Моя работа" или "Отложить изменения" на странице "Ожидающие изменения". Дополнительные сведения см. в статье "Приостановка выполнения работы" и управление полочными наборами.

Вы можете создать ветвь из Visual Studio или командной строки или сташе из командной строки.

Совместимость Visual Studio

Вы можете использовать все поддерживаемые версии Visual Studio.

Вы можете использовать все поддерживаемые версии Visual Studio.

Веб-портал

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

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

Миграция

Сведения о миграции из TFVC в Git см. в статье "Миграция из TFVC в Git".