Jump to content

2 Way Merge/Diff not saving - Unity Files on Mac - KDiff


Recommended Posts

Hi I am admittedly struggling with my merging with Unity files. Every time I merge there are always many conflicts in my project. 


I currently have 86 files with following extensions requiring manual merge, .txt , .meta, .asset 


When I right click on the files in the list I get 3 diff options, I select  "Diff Destination Contributor with Sources" 


This then triggers KDiff to open as my defined Diff tool in preferences for the $text file type. 


Now my issue from this point is I don't seem to get the option to save changes I make after resolving conflicts in KDiff to the correct output file, it seems to be a random path created by KDiff.




I'm a little confused as before I would get a 3 way merge when selecting files with Merge Conflicts for my previous Merge on another change set. The Output would be automatically specified and saved ok. Once I process all merges the files would disappear from the conflict list, this is not happening in this scenario.


I'm also aware that it's the Diff preferences that control which tool to open in preferences for this scenario. I would have expected the Merge preferences to be responsible for opening the tool on Merge conflicts. 



What am I doing wrong? I just want to get past this list of conflicts? Resolve them in KDiff and save, then click "Process all merges" in Mac Plastic and see them disappear.


Here are my KDiff CLI strings:


Diff Pref (the one that Macplastic Triggers):


$text "/Applications/kdiff3.app/Contents/MacOS/kdiff3" "@sourcefile" "@destinationfile" --L1 "@sourcesymbolic" --L2 "@destinationsymbolic"



Merge Pref:


"/Applications/kdiff3.app/Contents/MacOS/kdiff3" -b "@basefile" "@sourcefile" "@destinationfile" --L1 "@basesymbolic" --L2 "@sourcesymbolic" --L3 "@destinationsymbolic" -o "@output" --auto



Thanks, it's likely user error here. Also Semantic merge wont open these $text files, is it possible to make it do so...

Link to comment
Share on other sites

Yes I'm utterly confused on how to manual merge. It gives the option to Diff but there is no output parameter for this. Am I missing something here?


I can't commit my pending changes due to warning saying I need merge changeset 41, I find it in branch explorer and right click and select Merge From This Change Set. Then get to the list of Merge conflicts. Its at this point I have no idea why I can't resolve my conflicts. It opens the DIff Tool, not the Merge Tool?


Help really appreciated thanks. 

Link to comment
Share on other sites



this is what I have configured in macplastic:

/Users/Codice/Desktop/kdiff3.app/Contents/MacOS/kdiff3 --L1 "BASE" "@basefile" --L2 "SOURCE" "@sourcefile" --L3 "DESTINATION" "@destinationfile" -o "@output" -m

I can successfully resolve conflicts and so on. Although a temporal out file is created by kdiff at the following path the result is finally stored at @output,

Link to comment
Share on other sites

Thanks for helping Manu that line does not help, as when I open the file to Diff no output parameter is passed to KDiff because it's not using the Merge Tool string in preferences, instead it's using the Diff Tool preference string which does not support the @output.


I have got some screen shots to help:


1. I select the changeset in Branch Explorer to Merge and then right click and select Merge from Changeset (the highlighted one)



2. I get 86 Merge errors, I right click and select the option in the image! (We made big boo boo, I updated my Unity version and then someone else commited changes on the old version, very bad thing to do)




3. KDiff opens throws a error using the string you provided.


"/Applications/kdiff3.app/Contents/MacOS/kdiff3" --L1 "BASE" "@basefile" --L2 "SOURCE" "@sourcefile" --L3 "DESTINATION" "@destinationfile" -o "@output" -m




The associated preferences are 100% on this tab:





4. If I use this string provided by selecting KDiff in Diff Preferences Tab I get no errors but my merge conflict fixes from KDiff seem not save anyway and never process:


"/Applications/kdiff3.app/Contents/MacOS/kdiff3" "@sourcefile" "@destinationfile" --L1 "@sourcesymbolic" --L2 "@destinationsymbolic"


This is how KDiff opens, I have to manually choose to merge in the program as usually I get a window below highlighting the conflict lines:




5. Could this be causing all my troubles when using the string from point 4? This happens when I hit "process all merges":





Thanks we really need to get past this. We have some vital stuff to merge, almost ready to wipe the Repo and start fresh and manually import changes.  :D

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...