Что такое системы контроля версий?

Системы контроля версий (СКВ) незаменимы для отслеживания и контроля изменений исходного кода. Ознакомьтесь с основами распределенных, централизованных и локальных систем контроля версий ниже.

Системы контроля версий: подробности

Контроль версий — это системный процесс отслеживания и контроля обновлений исходного кода и ассетов. Системы контроля версий — это базовый компонент эффективных рабочих процессов, который служит единым источником достоверной информации для программистов, художников и других сотрудников и позволяет всем вносить свой вклад в кодовую базу независимо от других. Такие системы также выполняют защитную функцию, давая возможность отменить обновление кода, если во время разработки в код была внесена критическая ошибка.

Такие факторы, как численность сотрудников и их географическое положение, могут повлиять на выбор системы контроля версий для разработки игр. Независимым разработчикам может подойти локальное решение, в то время как большим командам нужна более надежная и масштабируемая система, которая помогает работать совместно в разных часовых поясах и регионах.

Зачем использовать системы контроля версий?

Системы контроля версий — это основа методологии DevOps, позволяющая командам вести быструю и эффективную совместную разработку и развивать исходный код проекта.

При использовании системы контроля версий у вас всегда будет резервная копия кода. Отдельные обновления проекта периодически добавляются в группу, которую называют «коммитом», перед объединением с основным исходным кодом. Если обновление вызывает ошибку, то можно восстановить предыдущую версию проекта и изучить коммит для диагностики проблемы.

Благодаря доступу к полной истории проекта и возможности отменять изменения, вызывающие ошибки, системы контроля версий упрощают отслеживание ошибок и упрощают восстановление ранее удаленных функций.

Централизованные системы контроля версий

Распределенные системы контроля версий

Распределенные системы контроля версий позволяют добавлять код, создавать ветвления и объединять код без подключения к главному серверу. Каждый участник команды работает с клонированным репозиторием, который хранится в облаке. Основное преимущество таких систем состоит в том, что участники команды могут быстро работать независимо, не волнуясь о медленном сетевом подключении или VPN. Можно даже работать с проектом в автономном режиме, хотя для отправки или извлечения обновлений все же требуется подключение к интернету.

Если вам потребуется скачать всю историю проекта (в частности, крупного проекта с большой историей изменений), в распределенных системах контроля версий это может занять много времени. Студиям, работающим с большими двоичными файлами, следует тщательно отслеживать использование хранилища, так как эти ресурсы могут быстро занять все доступное место.

Студиям, которым необходимы гибкость и возможность повышения производительности, следует рассмотреть использование распределенной системы контроля версий.

Локальные системы контроля версий

Локальные системы контроля версий — это самый простой вид подобных систем. Они используются в основном индивидуальными разработчиками, а не командами. В локальной системе контроля версий все данные проекта хранятся на одном компьютере, а изменения файлов проекта хранятся в виде патчей. Каждый патч содержит только обновления, реализованные с момента выпуска предыдущего патча. Если с определенной версией проекта возникает проблема, необходимо изучить весь набор патчей, чтобы понять, как файлы проекта выглядели в определенный момент времени, чтобы выявить и устранить ошибку.

Так как локальные системы контроля версий привязаны к одному компьютеру, они по своей природе менее гибкие, чем распределенные и централизованные системы. Совместная работа в таких системах затруднена. При нарушении целостности базы данных будет сложно (если вообще возможно) восстановить утерянную информацию.

В целом можно начать с локальной системы контроля версий, но по мере расширения команды, даже до двух человек, лучше перейти на распределенную или централизованную систему.

Распределенные системы контроля версий

Централизованные системы контроля версий

Централизованные системы контроля версий используют рабочий процесс на основе чекина/выгрузки для подключения к главному серверу. Все изменения или обновления исходного кода автоматически сохраняются в репозитории как новая версия. Централизованные системы контроля версий поддерживают мощные возможности ветвления и слияния, не требующие клонирования репозитория на несколько компьютеров. В этом смысле она более безопасна.

Для работы централизованным системам контроля версий требуется подключение к сети. Так как команды привязаны к одной версии проекта, которая хранится на одном сервере, сбой сервиса может существенно замедлить работу. Другой недостаток централизованных систем контроля версий — их плохая масштабируемость. Чем больше разработчиков работают над проектом, тем меньше возможностей выгружать изменения в стабильную среду, что может вызвать такие проблемы, как конфликты при слиянии.

Если вам нужна система контроля версий, которую легко настроить и использовать, то вы можете выбрать централизованную систему.

Локальные системы контроля версий

Локальные системы контроля версий — это самый простой вид подобных систем. Они используются в основном индивидуальными разработчиками, а не командами. В локальной системе контроля версий все данные проекта хранятся на одном компьютере, а изменения файлов проекта хранятся в виде патчей. Каждый патч содержит только обновления, реализованные с момента выпуска предыдущего патча. Если с определенной версией проекта возникает проблема, необходимо изучить весь набор патчей, чтобы понять, как файлы проекта выглядели в определенный момент времени, чтобы выявить и устранить ошибку.

Так как локальные системы контроля версий привязаны к одному компьютеру, они по своей природе менее гибкие, чем распределенные и централизованные системы. Совместная работа в таких системах затруднена. При нарушении целостности базы данных будет сложно (если вообще возможно) восстановить утерянную информацию.

В целом можно начать с локальной системы контроля версий, но по мере расширения команды, даже до двух человек, лучше перейти на распределенную или централизованную систему.

Benefits of version control

Modification Tracking

Easily track modifications and merge across the project

File Comparison

Enables file comparison and identifies the differences between files

Troubleshooting

Easy troubleshooting due to the full archive of changes recorded within the VCS

Central Repository

The central repository allows seamless collaboration without impacting individual performance or code changes

File Sharing

Free up space and time by seamlessly sharing files with developers and stakeholders without having to constantly save copies of code adjustments

Distributed Development

Distributed development allows developers to work anywhere at their convenience

Version Control e-Book

Should you work centralized or distributed? Each has its advantages and disadvantages – learn which approach to version control will work best for your team in this free e-book.

Похожие материалы

Изучите дополнительные ресурсы о системах контроля версий, а также других инструментах и процессах DevOps.

Agile и DevOps

У Agile и DevOps одинаковые цели— реализовать преимущества для клиентов за счет графиков регулярного выпуска, —  но немного разные подходы. Узнайте, как можно одновременно использовать обе эти методики.

Принципы DevOps

Каждая игровая студия стремится ускорить разработку и снизить потребность в сверхурочной работе. DevOps — лучший способ достичь этих целей. Для начала узнайте о ключевых принципах, лежащих в основе методологии DevOps.

Преимущества DevOps

Внедрение методов DevOps может упростить процесс разработки и повысить удовлетворенность сотрудников и пользователей. Узнайте, как вам может пригодиться DevOps.

Система контроля версий для разработки игр

Используйте системы контроля версий Unity для распределенной и централизованной работы. Легко управляйте большими двоичными файлами в процессах, основанных как на файлах, так и на наборах изменений. Храните исходный код и ассеты с отслеживанием всех изменений в защищенной системе контроля версий с поддержкой любого движка.

Мы используем cookie-файлы, чтобы вам было удобнее работать с нашим веб-сайтом. Подробнее об этом можно узнать на странице, посвященной политике использования cookie-файлов.

Согласен