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.
Resolve a UVCS conflict step by step
- Do not discard the merge state. Keep the pending merge active so UVCS can still provide the three contributors.
- Identify the conflicted Unity asset. Separate text-serialized scenes, prefabs, materials, and
.assetfiles from non-mergeable binary assets. - Preserve base, source, and destination. Base is the common ancestor, destination is your current side, and source is the incoming side.
- Open the configured merge tool. Use the UVCS Mergetool for ordinary text or a Unity-aware tool for scene and prefab structure.
- Review every unresolved semantic decision. Check hierarchy, references, prefab overrides, component ownership, reorders, and delete-versus-edit cases.
- Preview before writing. Confirm that both intended change sets are represented and that no conflict markers remain.
- Validate in Unity. Open the affected asset, inspect Console errors, missing scripts, references, and prefab connections, then run relevant project tests.
- Finish the UVCS merge. Mark the file resolved and check in the merge only after validation passes.
Understand UVCS 3-way merge terms
| UVCS term | Common merge term | Meaning |
|---|---|---|
| Base | BASE / ancestor | The common version before source and destination diverged. |
| Destination | OURS / local | The branch or workspace receiving the merge. |
| Source | THEIRS / remote | The branch or changeset being merged into the destination. |
| Result | Merged output | The 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
.metafiles.
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.