Кращі практики контролю версій в Unity?


11

Я трохи заплутався, як використовувати контроль версій з Unity, особливо з такими об'єктами, як сцени або збірні, які не є просто кодом.

Нещодавно у нас виникло питання, коли ми з колегою працювали над різними частинами однієї сцени. що спричинило конфлікти, розгалуження та злиття оралу.

Врешті-решт моя редакція все-таки була відмінена його змінами.

Єдиний спосіб, який я бачу в даний момент, - це ми по черзі працюємо над одними і тими ж об’єктами, але це не здається дуже зручним, тим більше, що вся робота, яку ми зараз робимо, знаходиться в сценах.

Що зазвичай роблять люди в цих ситуаціях?

(Ми використовуємо Mercurial, BitBucket і SourceTree.)


1
Ерм. Хочете прокоментувати, чому мене попросили менше 5 хвилин після запитання? Я не можу зробити питання краще, якщо не знаю, що з цим не так.
Кавору

2
Я також наткнувся на це. Ви можете розмістити сценарії без проблем, але сцени тощо здаються складнішими
Еван

1
Це текстові файли сцен, які важко об'єднати, або вони є бінарними файлами, які менш менш неможливими? Якщо вони є бінарними файлами, Unity, здається, надає інструменти для злиття (а може, і різниці?) Для цього .
Натан Купер

@NathanCooper Наскільки я можу сказати, вони є бінарними файлами. Принаймні, вони поводяться як бінарні файли, і відкриття їх у текстовому редакторі дає мені таке ж завантаження mumbo-jumbo, як і будь-який інший компільований файл. Я не знав про Smart Merge. Дякую!
Кавору

Відповіді:


6

Ви можете спробувати наступне рішення, якщо ви використовуєте GitHub.

  1. У єдності відкрийте Правка-> Налаштування проекту -> Редактор, потім - Інспектор параметрів проекту.
  2. Змініть "Режим контролю версій" на "Видимі метафайли".
  3. Змініть "Режим серіалізації активів" на "Примусовий текст".

Це добре працює для мене.


3

Більшість систем управління версіями (VCS) розроблені для тексту. Зазвичай вони мають дуже потужні та зручні функції для порівняння ( diff) та злиття вихідного коду, а деякі інструменти можуть навіть автоматично об'єднувати зміни (і робити гідну роботу, здогадуючись про те, як слід об'єднати зміни та в який момент розробник повинен звернутися з проханням зробити ручне злиття).

Було б чудово мати кращу підтримку diffта об’єднання бінарних файлів із відповідних програм, які використовують ці файли. Наприклад, Microsoft Word дозволяє порівнювати два документи, і хоча це далеко не зручний інструмент для злиття, він все-таки краще, ніж нічого, і економив мені години на кілька разів. На жаль, функцію злиття зазвичай або контролюють у програмних продуктах, або важко реалізувати (як ви візуалізуєте diff3D-сцену?)

Що стосується двійкових файлів, ви отримуєте невелику допомогу від VCS. Вони не тільки не можуть ефективно зберігати послідовні зміни, але і не можуть допомогти вам об'єднати зміни.

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

Підхід, який ви знайшли, тобто "по черзі працювати над одними і тими ж об'єктами", є хорошим. Якщо ви не можете злитися, не працюйте паралельно над одними і тими ж матеріалами. Якщо ви працюєте в одному офісі, це можна зробити просто. Якщо ні, то більшість систем управління версіями ( включаючи ту, яку ви використовуєте ; це також обговорюється тут у контексті BitBucket) підтримують блокування , яке полягає у тому, щоб користувач VCS повідомив через систему, що він працює над заданим файлом праворуч тепер; інші користувачі можуть завантажувати останню версію файлу, але не очікується, що це змінить.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.