How to use a DiffTool on Mac: window is not opened
Asked by moroandrea:

Sounds like a silly question but it is not.

Regardless I have tried several tools, none of them open the windows when I click on the Resolve Conflict in the external tool. I can see a windows popping up quickly but then suddenly it disappear so I can't read it.

I believe it shows the name of the files but can't get anything to work.

Trying to use the software from command line, say K3Diff, I was able to open the tool from terminal passing arguments, but when the app opens the files are not really selected. They appear in the drop down menu, which I have to select if I want to confirm and open. In any case the third parameter is ignored.

How can I set this up correctly?

Testing other products, but also having a look at the command line used in the .gitconfig file I was able to get the files opened from the terminal. No joy from the SourceTree app.


Answers:
author: Seth
body: I don't think you can use an external merge tool to resolve a modified-here/deleted-there conflict. Merge tools do line-by-line comparisons, which is impossible when there is no file on one side (fundamentally different than an empty file).

The appropriate way to resolve this conflict is to select the "Resolve using mine..." or "Resolve using theirs..." in the SourceTree context menu. "Mine" usually refers to the branch that you have checked out, and "theirs" is the branch that you selected to merge. For pull conflicts, Mine is local and Theirs is remote.

comments: author: Seth
body: This is probably closer to your situation: <https://jira.atlassian.com/browse/SRCTREEWIN-1259>


author: moroandrea
body: Doesn't sound like the same case, though no sign of any software opening for sure.


author: Seth
body: A rename is essentially a "delete" followed by an "add". As I said, there isn't any "merging" to do here, you just have to pick - do you want the file with the modifications, or do you want it to be deleted.


author: moroandrea
body: @Seth I believe this may be the case, but again the question it would be ... how can I know what the issue if I can't see anything. In this circumstance SourceTree didn't let me see anything to understand the file was deleted. I knew because this was discussed with the team, but what in a big project?Also, by resolving with theirs, source tree left behind dozens of files containing BASE, LOCAL, BACKUP and REMOTE. SHouldn't SourceTree have deleted these as soon as the conflict was resolved?


author: Seth
body: You are right, SourceTree should give some indication that the conflict involves the file being deleted on one side of the merge. You should make a feature request at jira.atlassian.com. If you post a link to the request here, I'll vote for it.As for the extra files, those were created when you attempted the external diff, and weren't cleaned up since the tool didn't launch (or close) properly.


author: moroandrea
body: @Seth request created. <https://jira.atlassian.com/browse/SRCTREE-2941>


author: moroandrea
body: Seems other had similar issues before.

<https://confluence.atlassian.com/pages/viewpage.action?pageId=267258218>

However, I've tested almost all the products in the list, and I can't see how a symbolic link can help.

That said, this could because my merge conflict regards a file that has been deleted on the remote but it is still on my local repo. However, how can I get that difference if I can't check the file ... or how can I visually get the situation to accept the remote commit?