Потребности в применении систем управления версиями выросли, поскольку сегодня они используются не только по основному назначению, но и для кода, которым задаются настройки инфраструктуры и всевозможные политики, а также для проектов, реализуемых с помощью средств Low Code и не только. Появился даже термин GitOps, относящийся к работе с версиями конфигурации программной инфраструктуры в системе Git. Рынок систем управления версиями развивается также благодаря стремительному росту числа пользователей соответствующих облачных платформ.
Одно из главных требований к современной системе управления версиями — масштабируемость, возможность пользоваться единой системой в пределах растущей организации независимо от платформ, применяемых разработчиками в разных отделениях и филиалах. Большое значение имеют производительность и поддержка ветвления — индивидуальной работы над функциями без влияния на главную ветвь кода и с возможностью последующего объединения ветвей. Важным требованием является поддержка взаимодействия, в том числе в географически распределенных коллективах — при этом все работают с единым источником кода, в том числе имеющего ветви. Востребована возможность расширения с помощью защищенного API, поскольку системы управления версиями все чаще применяются как главные репозитории данных, на основе которых реализуется автоматизация тестирования релизов и их развертывания в рабочей среде. Соответственно, защищенный API, позволяющий интегрировать систему управления версиями со средствами управления выпуском, необходим для сред непрерывной поставки.
Многие из существующих сегодня систем управления версиями развиваются уже десятки лет — Subversion, ClearCase, Mercurial. Однако наиболее популярными остаются решения на базе проекта с открытым кодом Git — GitHub, GitLab, BitBucket и пр., а в других системах обычно есть механизмы интеграции с Git.
Большинство таких решений сегодня превратились в полноценные платформы DevOps — в них есть средства управления проектами и документацией, подготовки пакетов, тестирования и развертывания ПО. Среди других возможностей — назначение политик для защиты от утечек кода, контроль источников изменений и иные механизмы безопасности.
В крупнейших платформах в последнее время появились ассистенты на основе генеративного ИИ, которые помогают писать и дорабатывать код, а также справляться с различными сложными задачами системы. В GitHub такой ассистент, Copilot, обучается на коде, который размещен в самом GitHub, что может идти вразрез с принципами организаций, которые пользуются этим сервисом управления версиями.
Тенденцией последних лет стал переход на облачные системы управления версиями — они обеспечивают взаимодействие в режиме реального времени, доступны в любой точке мира и характеризуются меньшими первоначальными затратами по сравнению с локальными. Соответствующие SaaS-решения предлагают GitHub, GitLab и другие.
В числе популярных систем управления версиями помимо уже упоминавшихся можно назвать Apache Subversion с открытым кодом, сервис Bitbucket компании Atlassian на основе Git с бесплатным тарифным планом, распределенную платформенно-независимую систему с открытым кодом Mercurial, проприетарный сервис Helix Core компании Perforce с поддержкой Git-клиентов и централизованную платформу Team Foundation Version Control от Microsoft.