UVCS Conflict Guide

How to Resolve Unity Version Control Merge Conflicts

A step-by-step workflow for resolving scene and prefab conflicts in Unity Version Control while preserving review context.

Alexandr Rice Follow on X Updated August 27, 2026 5 min read Unity Version Control

Resolve a UVCS conflict step by step

  1. Do not discard the merge state. Keep the pending merge active so UVCS can still provide the three contributors.
  2. Identify the conflicted Unity asset. Separate text-serialized scenes, prefabs, materials, and .asset files from non-mergeable binary assets.
  3. Preserve base, source, and destination. Base is the common ancestor, destination is your current side, and source is the incoming side.
  4. Open the configured merge tool. Use the UVCS Mergetool for ordinary text or a Unity-aware tool for scene and prefab structure.
  5. Review every unresolved semantic decision. Check hierarchy, references, prefab overrides, component ownership, reorders, and delete-versus-edit cases.
  6. Preview before writing. Confirm that both intended change sets are represented and that no conflict markers remain.
  7. Validate in Unity. Open the affected asset, inspect Console errors, missing scripts, references, and prefab connections, then run relevant project tests.
  8. Finish the UVCS merge. Mark the file resolved and check in the merge only after validation passes.

Understand UVCS 3-way merge terms

UVCS termCommon merge termMeaning
BaseBASE / ancestorThe common version before source and destination diverged.
DestinationOURS / localThe branch or workspace receiving the merge.
SourceTHEIRS / remoteThe branch or changeset being merged into the destination.
ResultMerged outputThe file that will be saved after every required decision is resolved.

These labels describe roles in one merge operation, not ownership or correctness. The source is not automatically right, and the destination is not automatically safer.

Why scenes and prefabs need more than line selection

UVCS can show the three file contributors, but Unity scenes and prefabs encode object graphs. A short YAML edit can change a GameObject parent, a local object reference, a prefab source link, or a component's serialized property. Conversely, a simple hierarchy move can touch many lines.

A workflow such as MergeSight semantic UVCS conflict review keeps the 3-way contributors visible while presenting changed objects, components, properties, hierarchy, GUIDs, fileIDs, and references. It should complement UVCS, not replace its branch or changeset model.

Choose direct loading or an external wrapper

MergeSight can detect UVCS conflicts through cm status. If the client exposes complete contributor revision metadata, it can load the sides directly. If that metadata is incomplete, configure the supplied interactive UVCS/Plastic merge wrapper so the client passes all five required values:

ancestor  destination  source  output  item-path

The wrapper creates a local request for an already-open Unity Editor, opens Merge Mode, waits for Apply or Cancel, and returns the result to UVCS. The auto-safe CLI wrapper is also available for cases where every decision is engine-proven safe.

Validation checklist before check-in

  • The result contains no <<<<<<<, =======, or >>>>>>> markers.
  • Every intended object addition, removal, reparent, and reorder is present.
  • Prefab instances still point to the correct source and preserve intended overrides.
  • GUID and local fileID references resolve to existing assets or objects.
  • No missing scripts, hierarchy errors, or component ownership problems were introduced.
  • The scene or prefab opens and saves in the project's exact Unity version.
  • The merged changeset contains only the intended files and their matching .meta files.

Reduce future UVCS conflicts

Use Smart Locks for non-mergeable binary assets and high-risk coordinated scene edits. Keep ordinary prefab and small scene changes reviewable and mergeable.

Short-lived branches, small changesets, scene ownership, additive scene boundaries, prefab-first workflows, and pre-merge semantic review all reduce the amount of intent that must be reconstructed during conflict resolution.

FAQ

How do I resolve a scene conflict in Unity Version Control?

Keep the UVCS merge active and preserve Base, Destination, and Source. Review the scene with hierarchy and reference context. Preview and validate the result before marking it resolved and checking in the merge.

What are source and destination in a UVCS merge?

Destination is the branch or workspace receiving changes, similar to Ours. Source is the branch or changeset being merged, similar to Theirs. Base is their common ancestor.

Should I use Smart Locks for every Unity scene?

No. Locks are useful for high-risk or non-mergeable work, but blanket scene locks can reduce parallel work. Text-serialized scenes can often be merged when ownership, review, and validation are strong.

Can MergeSight resolve UVCS conflicts automatically?

MergeSight can auto-resolve only engine-proven safe decisions. Ambiguous mappings, both-edited values, delete-versus-edit cases, and unsupported conflict shapes stay unresolved until a human chooses.

Why does a resolved UVCS conflict still fail in Unity?

A file can be syntactically valid while containing broken references, missing scripts, wrong hierarchy, lost overrides, or an unintended source/destination choice.

Try MergeSight

Review the Unity change, not the YAML noise

Open UVCS Base, Source, and Destination revisions in MergeSight to review decisions, preview the result, and validate before check-in.

Get it on the Asset Store See how MergeSight works