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


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

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


Изменения

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

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

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

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

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

Ветвление

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

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

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

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

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

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

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

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

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

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

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

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

Журнал

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

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

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

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

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

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

Вы можете вернуть фиксацию.

Масштабировать

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

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

Сервер

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

Возможность

TFVC

Git


Сервер

Azure DevOps Services, Сервер Azure DevOps

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

видны узлы

Участники команды могут получать оповещения электронной почты при отправке фиксаций на сервер.

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

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

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

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

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

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

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

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

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

Файлы

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

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

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

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

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

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

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

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

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

Клиент

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

Возможность

TFVC

Git


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

Visual Studio

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

Файлы

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

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

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

Изменения, фиксации и ветви страниц.

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

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

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

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

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

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

Веб-портал

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

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

Миграция

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