Handling Merge Conflicts

I need some help handling merge conflicts in the merge window. FYI: I'm using Maia EAP 10762 on a project with Subversion.

This is what I saw:

First, I clicked on the "merge all non-conflicting code" button. This left a local change with some new code at line 200.  The remote change had some different new code at line 200. (New code when compared to the repository version I had checked out.)

Both code fragments are valid and should be included in the merged result. (I recognized them as non-conflicting changes, but understand why a tool might not. Or maybe it should and didn't in this EAP build.)

The issue is, when I click on one of the merge chevrons (>> or <<), the move chevron on the other side goes away. When dealing with blocks of code, manually copying the code was a bit error prone since I recall losing all highlighting context as to what the new code was.

Here are the questions:

Assuming this isn't an EAP issue, what's the best way to handle merge conflicts like this? Is copy-and-paste the only way to do it?

A few minor enhancements I'd like to see would be:

1) Highlight the merged lines in the center pane
2) Leave the diff highlights in place (I think they went away after the merge)
3) Leave / change the merge chevrons on the side where the code wasn't merged. This would allow the developer to include that code in the merge, too. It could be as simple as changing the merge chevron from >> to >>> if the other side was added to the merge result.

Then again, maybe I'm all wet and just did it wrong!

Jack

2 comments
Comment actions Permalink

Currently the best way to handle this is indeed copy and paste. Do not use the merge buttons at all in this case, to prevent losing the highlighting.
Also vote for http://jetbrains.net/tracker/issue/IDEADEV-14280

Bas

0
Comment actions Permalink

hehe

this is the reason i don't use IDEA 3-way merge
i just press "Accept my version"
then invoke svn history on that file and open two diff windows: my version and HEAD, prev revision and HEAD (shortcut ctrld+d)
then manually merge (usually accepting all <<, cause now  there're less conflicts) HEAD into my version looking in tough situations on second diff

0

Please sign in to leave a comment.