Engine & platform

Встречайте Smart Locks, новый способ уменьшить конфликты слияний в Unity Version Control

VÍTOR MIGUEL / UNITY TECHNOLOGIESSenior Technical Product Manager
Jul 10, 2023|9 Мин
Встречайте Smart Locks, новый способ уменьшить конфликты слияний в Unity Version Control
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Мы в Unity страстно желаем дать творцам возможность работать с максимальной отдачей. Именно поэтому команда Unity DevOps рада представить Smart Locks, новую функцию Unity Version Control.

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

Безболезненное разветвление для всех дисциплин

Smart Locks автоматически проверяет, что вы работаете с последней версией, прежде чем разрешить вам заблокировать файл, поэтому он значительно минимизирует риск конфликтов слияния и позволяет командам без проблем разветвляться.

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

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

Как работают умные замки

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

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

Чтобы понять, как работает Smart Locks, давайте сначала рассмотрим, как возникает конфликт слияния, даже если команды правильно используют блокировки файлов.

Раньше использование блокировок файлов с ветвлением делало вас уязвимым к конфликтам слияния.
Раньше использование блокировок файлов с ветвлением делало вас уязвимым к конфликтам слияния.

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

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

С помощью Smart Locks вы можете ветвиться, не беспокоясь о конфликтах слияний.
С помощью Smart Locks вы можете ветвиться, не беспокоясь о конфликтах слияний.

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

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

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

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

1. Итерация быстрее

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

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

2. Создайте пространство для свежих идей

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

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

3. Управление сложными рабочими процессами

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

4. Масштабирование с меньшим трением

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

5. Поймите всю историю вашего проекта

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

Исключение ветвей для облегчения экспериментов

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

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

Улучшенный GUI для лучшего понимания филиалов

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

Интуитивно понятная история блокировки с помощью улучшенной визуализации.
Интуитивно понятная история блокировки с помощью улучшенной визуализации.

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

Полезные сообщения уведомляют вас о существующих блокировках определенных файлов.
Полезные сообщения уведомляют вас о существующих блокировках определенных файлов.
Как опробовать умные замки

Чтобы воспользоваться этой новой возможностью, просто обновите свою установку Unity Version Control до последней версии. Для локальных клиентов или бывших клиентов Plastic SCM Enterprise необходимо обновить серверы и клиентов, чтобы в полной мере ощутить преимущества Smart Locks.

Перед началом работы обязательно ознакомьтесь с документацией.

Новичок в Unity Version Control?

Unity Version Control - это инструмент контроля версий, не зависящий от движка и способный быстро обрабатывать большие файлы и двоичные файлы. Оптимизированные рабочие процессы для художников и программистов в игровых студиях любого размера позволят вам улучшить совместную работу команды и повысить производительность, чтобы быстрее и эффективнее создавать высококачественные игры. Чтобы начать работу бесплатно, зарегистрируйтесь в Unity DevOps (действуют условия).