Search Unity

UnityYAMLMerge and TortoiseSVN

Discussion in 'Editor & General Support' started by loko08, May 14, 2015.

  1. loko08

    loko08

    Joined:
    Oct 6, 2013
    Posts:
    57
    I have a question!

    Does the smart merge tool work with Tortoise? and if it does, does it configure the same as Tortoisegit??

    Thanks in advance! :D
     
  2. jdrewsen

    jdrewsen

    Unity Technologies

    Joined:
    Mar 28, 2011
    Posts:
    204
    Yes it does and the setup is the same as for TortoiseGIT.
     
    loko08 likes this.
  3. loko08

    loko08

    Joined:
    Oct 6, 2013
    Posts:
    57
    Thank you very much :D
     
  4. t0bi

    t0bi

    Joined:
    Sep 24, 2014
    Posts:
    7
    This does not work for me. When I click 'Edit conflicts' on a conflicted file, UnityYAMLMerge runs and shows a dialog box with the following error:

    Couldn't locate merge tool to handle extension r1208 in C:\Program Files\Unity\Editor\Data\Tools\mergespecfile.txt

    So it thinks "Scene.unity.r1208" is a r1208-file, where actually that extension is added by TortoiseSVN, marking the version of 'theirs'.
     
  5. jdrewsen

    jdrewsen

    Unity Technologies

    Joined:
    Mar 28, 2011
    Posts:
    204
    Try the --force flag.
    Btw. you can see usage for the tool by running it from command line with no arguments.
     
    idbrii likes this.
  6. realworld666

    realworld666

    Joined:
    Nov 2, 2012
    Posts:
    24
    I'm having the same problem. I have TortoiseSVN setup with this

    "C:\Program Files\Unity5\Unity\Editor\Data\Tools\UnityYAMLMerge.exe" merge -p "%base" "%theirs" "%mine" "%merged" --force

    which throws an error

    Couldn't locate merge tool to handle extension r51551 in C:\Program Files\Unity\Editor\Data\Tools\mergespecfile.txt

    I believe the command line expands to something like this. Not sure on the ordering of the filenames here

    "C:\Program Files\Unity5\Unity\Editor\Data\Tools\UnityYAMLMerge.exe" merge -p "FFBundleDatabase.asset" "FFBundleDatabase.asset.merge-left.r51550" "FFBundleDatabase.asset.merge-right.r51551" "FFBundleDatabase.asset.working" --force
     
  7. jdrewsen

    jdrewsen

    Unity Technologies

    Joined:
    Mar 28, 2011
    Posts:
    204
    Make sure all command line flags comes before the files names ie. move the --force before all the file names.
     
  8. idbrii

    idbrii

    Joined:
    Aug 18, 2014
    Posts:
    51
    I thought I had this working without following any of the above steps (I had added WinMerge to mergespecfile.txt and stopped getting the "Couldn't locate merge tool" error, but didn't understand why WinMerge sometimes popped up when resolving conflicts (it was diffing two revision number files with nothing obvious to resolve).

    Using --force actually works! From running UnityYAMLMerge with no args, I found the merge output file that tells you about conflicts (-o) and all the changes (--describe).

    My working command for TortoiseSVN:
    "C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe" merge -o c:\david\logs\merge.log -p --describe --force %base %theirs %mine %merged


    Merging in TortoiseSVN doesn't seem to do anything, but Unity loads my scene without errors. I can peek at that merge.log file to see what happened on each merge.