Что такое система контроля версий?
Системы контроля версий (СКВ) позволяют командам создавать резервные копии исходного кода своих проектов и архивировать его. Это упрощает проверку и внесение изменений в репозиторий или восстановление предыдущих версий в случае ошибок, нарушающих работу сборки.
Контроль версий — это системный процесс отслеживания и контроля обновлений исходного кода и ассетов. Системы контроля версий — это базовый компонент эффективных рабочих процессов, который служит единым источником достоверной информации для программистов, художников и других сотрудников и позволяет всем вносить свой вклад в кодовую базу независимо от других. Эти системы также выполняют защитную функцию, давая возможность отменить обновление кода, если во время разработки в код была внесена критическая ошибка.
Системы контроля версий — это основа методологии DevOps, позволяющая командам вести быструю и эффективную совместную разработку и развивать исходный код проекта.
Благодаря доступу к полной истории проекта и возможности отменять изменения, вызывающие ошибки, системы контроля версий упрощают отслеживание ошибок и упрощают восстановление ранее удаленных функций.
Создание нового репозитория в вашей системе контроля версий открывает основную ветку: Это называется главной веткой или мастером магистрали. Стволовая ветвь — это место, где основная база кода входит в конвейер, где она затем компилируется и развертывается для конечного пользователя.
Рассмотрим, что представляют собой ветви. Ветвление — это процесс создания веток кода из главной ветви. Это позволяет разработчикам вносить свои изменения в код, не отправляя их основную базу. Используя ветви, разработчикам не нужно хранить полную историю файлов на одном сервере. Вместо этого они могут вести полную историю изменений кода с течением времени. Затем система контроля версий может объединить эти отдельные ветви обратно в главную ветвь. Если разработчик не готов к объединению, он может передавать свои изменения в отдельную ветвь, а затем по мере готовности объединить ее с главной ветвью.
Продуманная стратегия ветвления важна для предотвращения конфликтов в коде и ошибок в сборках. К счастью, эффективные системы контроля версий позволяют командам легко синхронизироваться с главной ветвью и устранять любые потенциальные конфликты в коде — даже после его отправки в главную ветвь интеграции.
Распределенные системы контроля версий позволяют добавлять код, создавать ветвления и объединять код без подключения к главному серверу. Каждый участник команды работает с клонированным репозиторием, который хранится в облаке. Основное преимущество таких систем состоит в том, что участники команды могут быстро работать независимо, не волнуясь о медленном сетевом подключении или VPN. Можно даже работать с проектом в автономном режиме, хотя для отправки или извлечения обновлений все же требуется подключение к Интернету.
Если вам потребуется скачать всю историю проекта (в частности, крупного проекта с большой историей изменений), в распределенных системах контроля версий это может занять много времени. Студиям, работающим с большими двоичными файлами, следует тщательно отслеживать использование хранилища, так как эти ресурсы могут быстро занять все доступное место.
Студиям, которым необходимы гибкость и возможность повышения производительности, следует рассмотреть использование распределенной системы контроля версий.
Централизованные системы контроля версий используют рабочий процесс на основе чекина/выгрузки для подключения к главному серверу. Все изменения или обновления исходного кода автоматически сохраняются в репозитории как новая версия. Централизованные системы контроля версий поддерживают мощные возможности ветвления и слияния, не требующие клонирования репозитория на несколько компьютеров. В этом смысле она более безопасна.
Для работы централизованным системам контроля версий требуется подключение к сети. Так как команды привязаны к одной версии проекта, которая хранится на одном сервере, сбой сервиса может существенно замедлить работу. Другой недостаток централизованных систем контроля версий — их плохая масштабируемость. Чем больше разработчиков работают над проектом, тем меньше возможностей выгружать изменения в стабильную среду, что может вызвать такие проблемы, как конфликты при слиянии.
Если вам нужна система контроля версий, которую легко настроить и использовать, то вы можете выбрать централизованную систему.
Локальные системы контроля версий — это самый простой вид подобных систем. Они используются в основном индивидуальными разработчиками, а не командами. В локальной системе контроля версий все данные проекта хранятся на одном компьютере, а изменения файлов проекта хранятся в виде патчей. Каждый патч содержит только обновления, реализованные с момента выпуска предыдущего патча. Если с определенной версией проекта возникает проблема, необходимо изучить весь набор патчей, чтобы понять, как файлы проекта выглядели в определенный момент времени, чтобы выявить и устранить ошибку.
Так как локальные системы контроля версий привязаны к одному компьютеру, они по своей природе менее гибкие, чем распределенные и централизованные системы. Совместная работа в таких системах затруднена. При нарушении целостности базы данных будет сложно (если вообще возможно) восстановить утерянную информацию.
В целом можно начать с локальной системы контроля версий, но по мере расширения команды, даже до двух человек, лучше перейти на распределенную или централизованную систему.
Преимущества системы контроля версий
Легко отслеживайте изменения и объединяйте их в проекте.
Сравнивайте файлы и определяйте отличия между ними.
Легко устраняйте неполадки благодаря полному архиву изменений, зарегистрированных в СКВ.
Центральный репозиторий обеспечивает бесперебойную совместную работу, не влияя на индивидуальную производительность или изменения кода.
Освободите место и время, удобно обмениваясь файлами с разработчиками и заинтересованными лицами без необходимости постоянно сохранять копии изменений кода.
Распределенная разработка позволяет командам работать где угодно и когда им удобно.
Похожие материалы
У Agile и DevOps одинаковые цели — обеспечивать преимущества для клиентов за счет регулярного выпуска, — но немного разные подходы. Узнайте, как можно одновременно использовать обе эти методики.
Каждая игровая студия стремится ускорить разработку и снизить потребность в сверхурочной работе. DevOps — лучший способ достичь этих целей. Для начала узнайте о ключевых принципах, лежащих в основе методологии DevOps.
Внедрение методов DevOps может упростить процесс разработки и повысить удовлетворенность сотрудников и пользователей. Узнайте, как вам может пригодиться DevOps.
Централизованная или распределенная система? У каждого подхода есть свои плюсы и минусы. Из этой бесплатной электронной книги вы узнаете, какой тип контроля версий лучше всего подойдет вашей команде.
Используйте системы контроля версий Unity для распределенной и централизованной работы. Легко управляйте большими двоичными файлами в процессах, основанных как на файлах, так и на наборах изменений. Храните исходный код и ассеты с отслеживанием всех изменений в защищенной системе контроля версий с поддержкой любого движка.