В посте корпоративного блога, перевод которого идёт ниже, один из основных разработчиков Digg весьма эмоционально описывает свои впечатления от перехода от Subversion к Git и рассказывает о том насколько увеличилась продуктивность команды данного проекта.
За последние 12-16 месяцев в ряды команды Digg серьёзно расширились. Инженерный отдел увеличился в целых три раза, а к нему добавились ещё и отдельные QA и R&D команды. Если раньше мы выпускали код раз в три-четыре месяца, то сейчас релизы выходят фактически ежедневно. Мы столкнулись с рядом препятствий в этот переходный период, некоторые удалось легко преодолеть, решение других же далось с трудом. Нам пришлось изменить некоторые из наших процессов, освоить новые технологий, и многое изменить в менталитете наших разработчиков.
Когда я начинал работать в Digg, вся наша команда девелоперов работала вместе над одним проектом – время от времени все собирались на день или два в конференц-зале, искали и фиксили баги, после чего выпускался релиз, и команда переключалась на следующий проект. Сейчас же мы ведём разработку сразу нескольких проектов параллельно, и каждая функция создаваемого решения проходит проверку QA отделом, после чего она и выходит в свет.
Вначале мы использовали Subversion. Мы проверяли, разветвляли, коммитили, сливали и тэгировали. Это было далеко от совершенства и не сильно всех радовало, но это то, что у нас было. И это работало, в основном. Это была простая для понимания система и очень проста в использовании. Но только до определённых масштабов. Наша инженерная группа росла, все больше и больше работы делалось в одной и той же баз кода, и всё чаще мы мешали и, так сказать, наступали на ноги друг другу.
Процесс интеграции (объединения функций для релиза) длился по несколько дней и приводил к появлению множества конфликтов в коде. Человек, который осуществлял сборку, пытался разобраться самостоятельно с проблемой или же обращался к девелоперу, непосредственно реализовывавшему какую-либо функцию, чтобы отследить, в чём именно конфликт и какой код следует править, а какой сохранить. Всё это в обоих случаях приводило к множеству багов, а также буквально к исчезновению части кода. И это стоило нам времени, денег и влияло на наших пользователей, а ко всему этому мы относимся всегда серьёзно.
Мы знали, что должен быть какой-то другой, лучший, путь и стали его искать. Сначала мы пытались перейти от Subversion 1.4 к 1.5, в котором есть функция отслеживания сборок. Мы надеялись, что она сделает наш процесс интеграции куда более простым. Однако после того как мы поработали с Subversion 1.5 несколько недель мы поняли, что “merge tracking” в данном случае скорее миф нежели реальность. В теории всё хорошо, а на практике – толку ноль.
Читайте также
Состоялся первый публичный релиз децентрализованной платформы совместной разработки Radicle
Состоялся первый публичный релиз децентрализованной платформы совместной разработки Radicle
GitHub представил программу сертификации для разработчиков
GitHub представил программу сертификации для разработчиков
Хакер стирает Git-репозитории и требует выкуп
Хакер стирает Git-репозитории и требует выкуп
Уязвимости в Git позволяют удалённо выполнять код
Уязвимости в Git позволяют удалённо выполнять код
Обсуждение
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.