TFVC и Git

Для начала нужно разобраться с терминологией:

Azure DevOps или Team Foundation Server (TFS, был переименован в 2019г) — это инструмент управления жизненным циклом приложений, который включает в себя компонент системы контроля версий (VCS).

Azure DevOps поддерживает 2 системы версионирования репозиториев (“repo”):

Team Foundation Server Version Control (TFVC)

  • Централизованная система
  • Проприетарная технология Microsoft, поддерживаемая только ее продуктами

Git

  • Распределенная система, устойчивая к разделению
  • Open Source

Система контроля версий — это основа автоматизации.

Факты:

  • На июнь 2022г Microsoft рекомендует Git.
  • Впервые Git появился в Visual Studio 2013
  • Существует более-менее официальная утилита двухсторонней конвертации TFVC <-> Git.
  • Microsoft убрала свои внутренние продукты из TFVC. Исходные коды Windows и Office теперь находятся в Git в Azure DevOps.
  • Развитие TFVC прекращено, технология оставлена для совместимости со старыми проектами.
  • Microsoft купила GitHub в 2018г, который теперь является основным направлением для предложений, связанных с DevOps, поэтому многие люди, которые внесли свой вклад в Azure DevOps, перешли на GitHub.
  • Git — дефакто стандарт IT Отрасли.
  • Поддержка TFVC для Eclipse и Visual Studio Code, а также для Linux/Mac официально объявлена ​​устаревшей или прекращена.

Аналитика:

Для разработчиков на стеке Microsoft картина выглядит так:

Использование различных VCS комюнити SQL Server Central в 2008–2020г. , Источник

Почему Git побеждает:

  1. Распределенный характер означает, что Git очень устойчив к авариям, у кого-то всегда будет копия репозитория, также легче добиться высокой доступности сервиса.
  2. Возможность использовать широкий круг инструментов GitHub, GitLab, Azure DevOps, Bitbucket, Gitea…
  3. Работа в автономном режиме, вы работаете со своим полным репозиторием вместе с Историей. Вы можете фиксировать изменения, откатывать, просматривать историю и т. д. Вам нужно быть в сети только тогда, когда вы хотите синхронизироваться с удаленным репозиторием.
  4. В TFVC нет простого способа сохранить состояние ваших изменений (добавления, модификации, удаления файлов) и переключиться на другую ветку кода. Например, чтобы работать над двумя User Story в 2х ветках и переключаться туда и обратно.
  5. Git репозитории значительно компактнее.
  6. Git позволяет нам создавать локальные Ветки.
  7. Git делает проверку кода более продуктивной. Git позволяет добавить дополнительный Коммит в Запрос на слияние (Pull Request), и рецензент может просмотреть только этот Коммит. В то время как в TFVS рецензент получает новый запрос на проверку и должен просмотреть все заново.
  8. В TFVC репозитории хранятся на центральном сервере, и разработчики извлекают рабочую копию, которая представляет собой моментальный снимок кода в определенный момент времени. С помощью Git разработчики клонируют весь репозиторий на свои машины, включая всю историю.
  9. Идея блокировки всего TFVC репозитария при внесении изменений заслуживает отдельного упоминания.
  10. TFVC не позволяет использовать Git Flow (GitHub Flow)

Ссылки:

Подробная статься от Microsoft — Сравнение TFVC и Git, и ее английская версия.

— git-tfs — двусторонний мост между TFVC и Git. Он собирает коммиты TFVC в репозиторий Git и позволяет вам передавать свои обновления обратно в TFVC.

--

--

--

RTE & DevOps from Nizhny Novgorod https://michael.sokolov.im

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Михаил Соколов

Михаил Соколов

RTE & DevOps from Nizhny Novgorod https://michael.sokolov.im

More from Medium

REST & HATEoas

How to delete local git branches when you delete remote branches

[Git] 2 Ways to Fix git cherry-pick Conflicts

Locks and Rate Limiting