Встречайте 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 реализует эту единую линию развития независимо от того, продолжаете ли вы работать в одной ветке или переходите к созданию дочерних ветвей.

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

Большинство программистов, которые, скорее всего, знакомы с системами на базе Git, уже понимают и оценивают ценность ветвления. Основные преимущества ветвления для художников такие же, как и для кодеров.
Когда вы работаете в ветвях, вы фактически отделены от основной истории вашего проекта. Такая изоляция позволяет вам безопасно создавать прототипы и экспериментировать, не беспокоясь о том, что вы можете сломать свой проект.
Безопасное экспериментирование позволяет непрерывно проводить итерации и создавать несколько версий, чтобы вы могли выбрать наиболее понравившуюся, ориентируясь на историю репозитория. Пусть победит лучшая идея.
Разветвление по своей сути уменьшает шум от одновременной совместной работы. Он дает возможность для создания свежих идей, сохраняя при этом связь с первоначальной концепцией. Проще говоря, подумайте о разнице между самостоятельной итерацией в Google Doc и работой в одном документе с двумя сотнями других участников.
Вы можете генерировать новые концепции, не опасаясь конфликтов слияния, сохраняя их в системе контроля версий, а не работая независимо на локальном диске или во внешнем источнике, не интегрированном с основным проектом.
Разветвление позволяет командам разбивать сложные рабочие процессы на легко усваиваемые части. Вы можете создавать ветви в соответствии с тем, как вы организовали свой проект. В разработке игр естественным является разделение работ для облегчения управления проектом. Например, вы можете разделить работу в команде по функциям, персонажам или даже целым уровням. Ваша команда может сосредоточиться на работе в своем конкретном подразделении.
Разделение работы по филиалам позволяет различным командам и членам команд работать в своем темпе, в своем стиле и со своими процессами - и при этом вносить свой вклад в общий проект. Такое устранение трений не только делает сотрудничество более плавным, но и повышает вероятность того, что ваша команда будет чаще обновлять историю проекта. Вы сможете быстрее доставлять товары и соответствовать ожиданиям геймеров.
Ветвление облегчает просмотр полной картины истории проекта, в то время как проверка изменений в main затрудняет просмотр всего спектра изменений. Разветвление помогает быстрее выявить эти изменения.
Мы разработали Smart Locks, чтобы предоставить всем членам вашей команды гибкость в выборе методов работы. Мы также понимаем, что работа со сложными файловыми блокировками может стать помехой в некоторых ситуациях, например, на стадии разработки идеи и экспериментов над проектом.
Поэтому в дополнение к замкам для путешествий мы создали новую функцию исключения ветвей. Это позволяет исключить ветви из механизма блокировки, установив пользовательские правила блокировки. Когда вы знаете, что вам никогда не понадобится сливаться с исходной веткой, вы можете создавать прототипы или экспериментировать в своей ветке, не обременённые ограничениями блокировки файлов.
Чтобы вы могли отслеживать сложные проекты и наглядно представлять существующий список блокировок, мы также улучшили графический интерфейс пользователя (GUI) как в настольном клиенте, так и в UDash. Просматривая историю блокировок, вы можете легко узнать, кто и когда создал блокировку.

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

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