We have been primarily using SourceTree and Meld to manage version control. In order to allow for smart merging of Unity Scenes and Prefabs some changes have to be made.
- Go to (Tools -> Options -> Diff) in SourceTree
- Set Merge tool to "Custom"
- The Diff Command should be
<Unity Install Path>\Editor\Data\Tools\UnityYAMLMerge.exe - The Arguments should be
merge -p $BASE $REMOTE $LOCAL $MERGED - Open
mergespecificfile.txtat<Unity Install Path>\Editor\Data\Tools - Change:
unity use "%programs%\YouFallbackMergeToolForScenesHere.exe" "%l" "%r" "%b" "%d"
prefab use "%programs%\YouFallbackMergeToolForPrefabsHere.exe" "%l" "%r" "%b" "%d"
To:
unity use "<Meld install path>\Meld.exe" "%l" "%r" "%b" "%d"
prefab use "<Meld install path>\Meld.exe" "%l" "%r" "%b" "%d"
To perform a smart merge, right click on the conflicted file and click Resolve Conflicts -> Launch External Merge Tool