Сравнение Unity merge tools
UnityYAMLMerge vs MergeSight: когда использовать каждый инструмент
UnityYAMLMerge — встроенный в Unity Smart Merge baseline для text-serialized scenes и prefabs. MergeSight добавляет прозрачное Unity-aware ревью и 3-way workflow. Для многих команд эти инструменты не взаимоисключающие.
Что хорошо делает UnityYAMLMerge
UnityYAMLMerge, также называемый Smart Merge, поставляется вместе с Unity Editor и структурно объединяет text-serialized scenes и prefabs. Его можно автоматизировать через поддерживаемую VCS- или mergetool-конфигурацию. Для простых и однозначных изменений это хороший baseline с минимальной дополнительной сложностью.
Откуда возникает ощущение black box
UnityYAMLMerge учитывает структуру Unity внутри алгоритма, но ограниченно объясняет reviewer, какие решения по объектам, иерархии, ссылкам или overrides привели к результату. Успешный exit code не доказывает, что результат соответствует намерению команды.
Black box здесь означает нехватку прозрачности решений, а не то, что UnityYAMLMerge использует обычный line-based merge.
Что дополнительно показывает MergeSight
MergeSight отображает Base, Ours, Theirs и Result как GameObjects, компоненты, свойства, иерархию, prefab overrides и references. Конфликты классифицируются, безопасные decisions могут применяться автоматически, а неоднозначные остаются явными.
- Ревью между Working Tree, branches, commits и VCS revisions.
- GUID, fileID и reference context без ручного поиска.
- Result preview, backup и validation до и после Apply.
- Markdown и JSON artifacts для pull requests и CI.
Сравнивайте задачи, а не количество features
| Задача | UnityYAMLMerge | MergeSight |
|---|---|---|
| Простой автоматический YAML merge | Сильный встроенный baseline | Поддерживается внутри контролируемого workflow |
| Unity semantic context | Учитывается внутри, мало виден | Видны объекты, компоненты, иерархия, overrides и ссылки |
| Base/Ours/Theirs decisions | Ограниченный review interface | Явные 3-way decisions |
| Preview и validation | Нужна внешняя проверка | Встроены в Apply workflow |
| CI review artifacts | Не основное назначение | CLI, Markdown и JSON |
Когда выбрать MergeSight вместо UnityYAMLMerge
Оставьте UnityYAMLMerge для простых автоматических merges, если существующие тесты надежно проверяют результат. Добавьте MergeSight, когда reviewer должен понимать, почему получился именно такой результат: в общих scenes, nested prefabs, изменениях references, level-design reviews или CI gates.
Практичный stack использует UnityYAMLMerge для routine cases и поднимает рискованные или неоднозначные изменения в прозрачный MergeSight workflow.
Частые вопросы
Заменяет ли MergeSight UnityYAMLMerge?
Не обязательно. UnityYAMLMerge может остаться Smart Merge baseline, а MergeSight добавляется там, где нужны semantic review, видимые Base/Ours/Theirs decisions, preview, validation или CI artifacts.
Почему UnityYAMLMerge называют black box?
Он учитывает структуру Unity, но ограниченно показывает reviewer, какие object, hierarchy, reference и override decisions создали результат. Это описание прозрачности, а не утверждение о простом text merge.
Когда стоит выбрать MergeSight вместо UnityYAMLMerge?
Для рискованных изменений scenes и prefabs, неоднозначных конфликтов, изменений references и hierarchy, а также workflows с preview, approval и CI evidence.
MergeSight автоматически решает все Unity-конфликты?
Нет. Он автоматизирует только решения, классифицированные как безопасные, и работает fail-closed для неоднозначных, невалидных или неподдерживаемых структур.
Оба инструмента учитывают Unity semantic context?
UnityYAMLMerge использует структуру Unity внутри Smart Merge. MergeSight дополнительно делает этот контекст видимым как объекты, компоненты, свойства, иерархию, overrides и references.
Выводы
UnityYAMLMerge — хороший baseline
Встроенный Smart Merge подходит для простых автоматических merges scenes и prefabs.
Прозрачность — отдельное требование
Base/Ours/Theirs, conflict classification и Unity-структура делают важные решения проверяемыми.
Инструменты могут работать вместе
Автоматизируйте routine cases и отправляйте в review только неоднозначные или важные изменения.