Средства поддержки широко распространенной системы управления исходным кодом и контроля версий Git появились в интегрированной среде разработки Visual Studio и продукте Team Foundation Server (TFS) – двух ключевых инструмента Microsoft, предназначенных для разработчиков корпоративных приложений.
«TFS весьма популярен на корпоративном рынке, а Git применяется в среде сторонников идей Open Source, – отметил менеджер Microsoft по продукту TFS Брайан Харри. – Нам хотелось бы сократить разрыв между двумя этими направлениями, ведь Git – прекрасный инструмент как для сторонников программ с открытым кодом, так и для корпоративных клиентов».
Об интеграции Git с традиционными инструментами корпорации Харри объявил на конференции Microsoft ALM Summit в Редмонде.
TFS предназначен для управления жизненным циклом разработки приложений, включая управление требованиями, управление проектом, управление конфигурацией, тестирование и развертывание. Кроме того, существует версия Team Foundation Server в виде сервиса.
В состав TFS уже включен модуль управления исходным кодом (Source Code Management, SCM), позволяющий отслеживать изменения в документах и файлах развивающейся базы исходных текстов. Но, поскольку члены команды разработчиков все чаще находятся в разных местах, в Microsoft считают актуальным предложить распределенный вариант SCM, позволяющий разработчикам использовать локальные копии кода и синхронизировать собственные изменения с изменениями, которые были внесены другими участниками проекта.
Вместо того чтобы создавать распределенную систему SCM с нуля, в корпорации решили взять какой-нибудь уже готовый и достаточно широко распространенный вариант. «В этом смысле Git в наиболее полной мере отвечает нашим требованиям», – пояснил Харри.
Microsoft отмечает рост популярности Git в среде своих пользователей. В прошлом году был выпущен модуль Git TFS Bridge, позволяющий разработчикам использовать Git на своей локальной машине с отражением внесенных в TFS изменений. К созданию Git Торвальдс приступил в 2005 году после лицензионных разногласий в отношении BitKeeper – коммерческого репозитория, который использовался для управления базой исходных текстов Linux.
Программное обеспечение Git изначально было ориентировано на управление крупными программными проектами, к числу которых относится и ядро Linux. Сейчас в нем насчитывается более 15 млн строк кода, а обновление осуществляется через каждые два-три месяца совместными усилиями тысяч разработчиков из самых разных уголков мира.
Торвальдс и его коллеги спроектировали Git для создания глобального распределенного хранилища, которое и в случае существенного роста базы исходного кода работало бы без задержек.
«Интеграция Git в TFS станет подтверждением настоящего признания этой системы, – подчеркнул Харри. – О создании какой-то специальной редакции 'Microsoft Git' речи не идет». Компания будет использовать наиболее популярную версию libgit2, написанную на Cи.
При создании нового проекта пользователи TFS теперь смогут выбрать либо интегрированный в программный пакет модуль Git, либо собственную централизованную систему управления версиями TFS.
«Наша цель в том, чтобы предоставить пользователям лучшую централизованную и лучшую распределенную систему управления версиями», – пояснил Харри.
TFS позволяет выполнять в репозитории Git достаточно широкий набор функций, включая автоматическую сборку, тестирование и отслеживание хода работ. Со временем функционал Git станет сопоставим с функционалом централизованного репозитория TFS и будет интегрирован с Active Directory и прочими инструментами корпоративной безопасности и аудита Microsoft.
При желании клиенты смогут арендовать Git в рамках подписки на сервис Team Foundation Service.
Довольно много времени Microsoft уделяет дальнейшей доработке libgit2. Корпорация поддерживает контакты с компанией GitHub и другими программистами сообщества, которые занимаются проектированием Git.
Инженеры Microsoft работают над тем, чтобы сделать версию для Windows более удобной. Харри признал, что вариант Git на платформе Windows проигрывает в простоте использования версиям для Mac OS и Unix. «И мы должны помочь это исправить», – подчеркнул он.
Помимо интеграции Git в TFS, в Microsoft обеспечили поддержку этой системы в интегрированной среде разработки Visual Studio. Был выпущен специальный модуль расширения, который позволит клиентам напрямую размещать код в любом репозитории Git. Модуль расширения Git Community Technology Preview совместим с версией Visual Studio 12, а в следующей версии Microsoft планирует встроить средства поддержки Git в среду разработки.
Visual Studio поддерживает взаимодействие с репозиторием Git, развернутым в TFS, в сервисах Team Foundation Service и GitHub, а также в любой другой версии репозитория.
Таким образом, Visual Studio может стать основным интерфейсом для Git. «Я в любой момент могу подключиться к репозиторию, создать его копию, открыть проект в Visual Studio, отредактировать файлы и сохранить их», – отметил Харри.
Разработчики будут получать информацию о внесенных в код изменениях, смогут просматривать их, переключаться на другую ветку кода и объединять код в стержневой ветви проекта.
«Основной недостаток Git заключался в том, что этот инструментарий был чересчур сложным, – подчеркнул Харри. – Мы попытались описать наиболее распространенные схемы использования системы управления версиями и разработали для Visual Studio простую процедуру, которая делает Git гораздо доступнее».