Unity merge tool comparison
UnityYAMLMerge と MergeSight:どちらを使うべきか
UnityYAMLMerge は text serialized scene と prefab に対する Unity 標準の Smart Merge baseline です。MergeSight は、透明な Unity-aware review と 3-way workflow を追加します。多くのチームでは二者択一ではありません。
UnityYAMLMerge が得意なこと
UnityYAMLMerge(Smart Merge)は Unity Editor に含まれ、text serialized scene と prefab を構造に基づいて統合します。VCS や mergetool の設定から自動実行でき、単純で明確な変更には追加の導入コストが小さい有効な baseline です。
Black box に見える理由
UnityYAMLMerge は内部で Unity structure を考慮しますが、どの object、hierarchy、reference、override の判断が結果を作ったかを reviewer に詳しく表示しません。Process が成功しても、結果がチームの意図どおりとは限りません。
ここでいう black box はアルゴリズムが単なる line merge という意味ではなく、意思決定の透明性が限られるという意味です。
MergeSight が追加で可視化するもの
MergeSight は Base、Ours、Theirs、Result を GameObject、component、property、hierarchy、prefab override、reference として表示します。Conflict を分類し、安全な decision だけを自動化し、曖昧な箇所は明示的に残します。
- Working Tree、branch、commit、VCS revision 間の review。
- GUID、fileID、reference context の表示。
- Apply 前後の result preview、backup、validation。
- Pull request と CI 用の Markdown / JSON artifact。
機能数ではなく作業単位で比べる
| 作業 | UnityYAMLMerge | MergeSight |
|---|---|---|
| 単純な自動 YAML merge | Unity 標準の強い baseline | 制御された workflow の一部として対応 |
| Unity semantic context | 内部で利用、表示は限定的 | Object、component、hierarchy、override、reference を表示 |
| Base/Ours/Theirs decision | Review UI は限定的 | 明示的な 3-way decision |
| Preview と validation | 外部で確認 | Apply workflow に統合 |
| CI review artifact | 主目的ではない | CLI、Markdown、JSON |
MergeSight を選ぶ場面
単純な自動 merge と既存テストで十分なら UnityYAMLMerge を使い続けられます。共有 scene、nested prefab、reference、level design、CI gate など、結果が作られた理由を reviewer が理解する必要があるなら MergeSight を追加します。
実用的な構成は、通常ケースを UnityYAMLMerge で処理し、危険または曖昧な変更だけを透明な MergeSight workflow に escalation することです。
よくある質問
MergeSight は UnityYAMLMerge を置き換えますか?
必ずしも置き換えません。UnityYAMLMerge を Smart Merge baseline として残し、semantic review、Base/Ours/Theirs、preview、validation、CI artifact が必要な箇所に MergeSight を追加できます。
UnityYAMLMerge が black box と呼ばれるのはなぜですか?
Unity structure を考慮しますが、結果を作った object、hierarchy、reference、override の decision を reviewer に十分表示しないためです。単純な text merge だという意味ではありません。
UnityYAMLMerge より MergeSight を選ぶのはいつですか?
Risk の高い scene / prefab、曖昧な conflict、reference や hierarchy の変更、preview と承認、CI evidence が必要な workflow です。
MergeSight はすべての Unity conflict を自動解決しますか?
いいえ。安全と分類できる decision だけを自動化し、曖昧、無効、未対応の structure では fail closed します。
両方とも Unity semantic context を扱いますか?
UnityYAMLMerge は Smart Merge の内部で Unity structure を使います。MergeSight はその context を object、component、property、hierarchy、override、reference として reviewer に可視化します。
まとめ
UnityYAMLMerge は有効な baseline
単純な scene / prefab の自動 merge に標準で利用できます。
透明性は別の要件
Base/Ours/Theirs、conflict classification、Unity structure が重要な判断を review 可能にします。
2つは共存できる
通常ケースを自動化し、曖昧または重要な変更だけを review workflow に送れます。