8 факторов, которые следует учитывать при выборе системы контроля версий

FERGUS BAIRD / UNITY TECHNOLOGIESSenior Content Marketing Manager
Sep 23, 2021|10 Мин
8 факторов, которые следует учитывать при выборе системы контроля версий
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

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

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

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

Как работает контроль версий

Контроль версий позволяет вам видеть весь проект с высоты птичьего полета. Он привносит фундаментальную организацию в вашу работу, что позволяет вашей команде быстро и эффективно проводить итерации. Но как?

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

С помощью VCS вы можете вносить множество индивидуальных изменений и "фиксировать" их как единую группу для поиска источников. Это объединяет группу изменений в одну, так что при возврате к предыдущей версии все изменения из этой группы будут отменены. Фактически, вы можете просмотреть и изменить каждое изменение, сгруппированное в "фиксации", или отменить "фиксацию" целиком. Поскольку у вас есть доступ к полной истории, вам будет легче отследить и устранить ошибки, а также восстановить все ранее удаленные функции.

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

Зачем переходить на новую систему контроля версий

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

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

  • Улучшение взаимодействия между различными командами и между ними
  • Быстрая поддержка управления большими двоичными файлами и активами
  • Файловый рабочий процесс для внесения изменений в уникальные файлы без загрузки всей сборки проекта
  • Гибкие и надежные решения для разветвления, позволяющие членам вашей команды работать параллельно (а не только нескольким избранным).
  • Расширенная интеграция с вашими текущими инструментами разработки
  • Повышенная безопасность для защиты ваших проектов
Что нужно учитывать при принятии решения

Вот восемь ключевых факторов, которые следует учитывать при выборе следующей системы контроля версий:

1. Ваша команда

Внедрение или переход на новую систему VCS в первую очередь способствует укреплению командной работы. Независимо от того, работаете ли вы на месте или удаленно, система контроля версий позволит вам и вашим коллегам координировать работу друг с другом, работая при этом независимо друг от друга. Чтобы удовлетворить конкретные потребности вашей команды, спросите себя: Сколько человек будут пользоваться этой новой системой? Каков уровень их технической компетентности? Что они думают о ваших текущих возможностях и чего бы они хотели от чего-то нового?

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

2. Типы и размеры файлов

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

Растущая сложность игрового дизайна означает работу над более сложными проектами и управление ими с более широким набором типов файлов, большими файлами и потенциально огромными репозиториями. Чтобы наладить бесперебойный рабочий процесс и быстрое объединение, воспользуйтесь VCS, способной справиться с масштабными проектами. Помните, что выбор системы контроля версий - это долгая игра. Даже если сейчас ваша команда не работает с большими файлами, со временем ваши потребности обязательно изменятся. Думайте наперед, чтобы настроить себя на длительный успех.

3. Простота настройки и обслуживания

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

Не будем забывать: Более простая настройка означает более быструю настройку. А своевременный запуск означает, что у вашей команды будет больше времени на адаптацию и более эффективную работу. Поэтому, если вас беспокоят технические аспекты настройки и обслуживания, оцените степень успешности рассматриваемых вами пакетов. Начните с чтения обзоров, чтобы определить наилучший вариант VCS для ваших целей.

4. Ваши рабочие процессы

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

Еще один фактор, связанный с рабочим процессом, о котором следует подумать, - поддерживает ли ваша система контроля версий ветвление. Ветвление - это когда тот, кто работает над определенным набором файлов проекта, изолирует эти файлы от основной ветки проекта, или "ствола". Это позволяет им тестировать изменения, не затрагивая основной ствол. Изменения могут быть возвращены в основной ствол после того, как они будут оценены и признаны стабильными.

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

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

Пластиковое окно

5. Сроки внедрения вашей системы

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

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

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

Подробнее о переносе проектов Unity Collaborate в Plastic SCM читайте ниже:

6. На что вы будете тратить (и где вы будете экономить)

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

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

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

7. Требования к безопасности

Контроль версий - это не только управление исходным кодом вашей игры. В выбранной вами системе будут храниться и другие активы, такие как деловая и методическая документация, проектные файлы, конфигурации инструментов и т. д.

Чтобы обеспечить безопасность этих файлов, ваш VCS должен предоставлять несколько уровней защиты и разрешений. Это поможет защитить ваш код и IP-активы от посягательств извне, а также уберечь их от возможных внутренних утечек.

8. Уровень гибкости

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

Централизованные рабочие процессы

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

Распределенные рабочие процессы

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

Многосайтовые рабочие процессы

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

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

Ведущие системы контроля версий

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

Git

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

Perforce (Helix Core)

Helix Core - это система контроля версий корпоративного уровня, используемая такими игровыми студиями, как EA и Ubisoft. Этот VCS имеет централизованные репозитории и работает с большими бинарными файлами. Однако в нем нет визуальных репозиториев, поэтому его внедрение может оказаться более сложным для нетехнических разработчиков.

Apache Subversion

Как и Git, Apache Subversion - это бесплатная система контроля версий с открытым исходным кодом. Он имеет централизованные репозитории и может работать с большими бинарными файлами, но для его использования необходимо подключение к главному серверу, что не идеально для работы в автономном режиме и может стать помехой для больших или распределенных команд.

Plastic SCM

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

Более того, Plastic SCM - единственная система контроля версий на рынке, которая поддерживает визуальное ветвление. Он может обрабатывать тысячи филиалов одновременно и не заставляет вас выбирать между централизованным и распределенным рабочим процессом.

Хотите узнать, что еще Unity может сделать для вас? Откройте для себя решения Unity для преодоления проблем на всех этапах разработки - от большой идеи до большого успеха.