3-way merge in V4: get back the action buttons in all directions

Discussion of open issues, suggestions and bugs regarding file and folder merge tool – Code Compare
Post Reply
John E
Posts: 3
Joined: Thu 03 Jul 2014 09:13

3-way merge in V4: get back the action buttons in all directions

Post by John E » Thu 03 Jul 2014 10:24

CC pro V4 does not display the action transfer buttons in all directions. Only the direction from left-to-middle and right-to-middle are there. Quote from the revision history:
Redundant buttons for the changes transfer were removed to visually simplify the merging process and minimize a chance of casual changes transfer to the wrong file.
Is there a way to get back the buttons in both directions (i.e., unhide the buttons from middle-to-left and middle-to-right), which DevArt considered to be 'redundant'?

If not, I have a problem because I can no longer merge the way I was used to.

My scenario 1: sometimes I have two versions of some piece of code (for example a method or an entire file), which are different enough to be not-so-easy to merge without a tool. I want to 'repeat' the edits I did to version A into version B. I would do this by pasting the A-pre- and A-post-edit into two of the three panes and B into the remaining pane. Even when all buttons were still there, it was a bit hard to arrange the panes so I could see the edits in A and at the same time process them one-by-one into B. Sometimes I would need to swap the panes, etc. But now I don't see a way to do this. I'm forced to put B in the center because the buttons only go there, so the A-pre and A-post have to be on the far left and far right, so CC does not display the diffs between them (the middle pane is in between :( ).

The options I can see:
- Get back the arrow buttons in both-directions.
- Manipulate CC into doing 'real' 3-way merging, where actually there are 4 files involved (A, B, Base and Result). This would be the nicest. I use that mode when CC is invoked from the IDE during version control merges. Then the IDE takes care of invoking CC with the correct command line arguments. But for my ad hoc actions, I'd need to save three fragments to disk first, then construct some long command line, etc.

Am I missing something?

AlexeyN
Devart Team
Posts: 244
Joined: Wed 12 Sep 2012 12:09

Re: 3-way merge in V4: get back the action buttons in all directions

Post by AlexeyN » Thu 03 Jul 2014 11:32

There are four files involved in the merge: Their, Mine, Base and Result. At the merge startup, you see Theirs on the left pane, Result on the middle pane, and Mine on the right pane. Using the toolbar button, you can switch Theirs with Base file. Also, at the same toolbar, you can switch to the view mode and see comparison with Theirs(Base) + Mine, Result + Mine etc.

As for the 4-pane merge, please vote for this idea: http://devart.uservoice.com/forums/9303 ... 3-way-diff

John E
Posts: 3
Joined: Thu 03 Jul 2014 09:13

Re: 3-way merge in V4: get back the action buttons in all directions

Post by John E » Thu 03 Jul 2014 14:55

Your response leaves most of my questions unanswered.
  • ‘Switch to the view mode’: I assume you mean the group of buttons where you can choose for ‘second-third pane view’, etc. Even if hiding one pane gives me two-way arrow buttons for a short moment, that’s not practical. Clicking those buttons causes horizontal and vertical jumping so I lose track of where I am. And it would be very counter-intuitive having to think before each action which pane I should hide this time. A 3-way merge tool should not force the user to switch to 2-pane view just to get something done.
  • No solution yet for ad-hoc copy-paste comparison: you are assuming that I have first saved all texts to files and then call up CC with all command line arguments needed to start a 4-file merge.
  • 4 panes view: maybe it would solve my problem, I’m not sure. You’re the specialist. But it’s something I wanted so I’ll vote for that. Maybe it could help me to (a) see the edits from A-pre to A-post, (b) see the diffs between A-pre and B-pre, and then selectively transfer changes from A-post to B-pre (or better yet, to a 4th pane B-post).
Should I understand that you there’s no way anymore in V4 to have a 3-pane view with all 4 arrow buttons (not only from 1 and 3 to 2 but also from 2 to 1 and 3)? You may consider the buttons redundant, but I consider them essential. In fact, if It would even be very useful for my scenario to add two more arrow buttons which ‘jump’ over the middle pane (from 1 to 3 and from 3 to 1) (if you could solve the UI challenge).

AlexeyN
Devart Team
Posts: 244
Joined: Wed 12 Sep 2012 12:09

Re: 3-way merge in V4: get back the action buttons in all directions

Post by AlexeyN » Thu 03 Jul 2014 15:54

Truly, we do not fully understand your use case. A common case is when a user performs merge to the middle pane by throwing changes from the left and right panes. Sometimes, for better diff perception, we can copy minor (unimportant) changes from the middle pane to the right/left - and Code Compare has no handy tool to do this.

We will think how to solve such cases while planning the new Code Compare version. Currently, I have added a feature request to our project management tool to add context menu items that will allow to copy changes from the middle pane as well.

Also, we will fix the problem with jumping scrolling when switching to another view.

Please take a look at the context menu of the small arrow buttons - I hope you will find there something useful for your use case.

And you are always welcome to create new suggestions in our UserVoice. E.g. you can create a suggestion to return arrow buttons in the middle pane - and if it is of higher priority to our users, we will definitely return them.

John E
Posts: 3
Joined: Thu 03 Jul 2014 09:13

Re: 3-way merge in V4: get back the action buttons in all directions

Post by John E » Fri 04 Jul 2014 08:34

I want to use CC as a general purpose text compare tool. Not just for the common scenarios from the version control world. DevArt took away the buttons which I payed for in V3, assuming specific use scenarios. Taking away functionality is one thing, but user should be given the option to keep it.

The existing context menu of the small arrow buttons gives choices only vertical direction choices, not horizontal.

You propose to add context menu items that will allow to copy changes from the middle pane as well. If you mean we have to do two mouse-clicks for every move in the opposite direction, then I have a better proposal. Just make controllable which transfer buttons are in the UI. Possibly via a button in the toolbar. The available options should be at least the old behavior (4 buttons) and the new behavior (2 buttons). And preferably a new behavior too: 6 buttons.

Having 6 buttons would really solve my problem. Add buttons at the extreme left and extreme right (only when the user wants), which push changes between the left and right panes without touching the middle pane. Then I could do my scenario as follows. Have A-pre in the middle, A-post on the left, have B on the right. The diffs that CC shows me between middle and left are the edits in A that I want to repeat into B. The diffs between middle and right are existing differences between A-pre and B-pre, which I have to be aware of. When I decide that a block in A-post can be copied to B because A-pre and B-pre show no diff there), I click the button ‘1-to-3’ and bingo.

I even feel that combining this with 4-pane layout would make CC even more powerful and generic.

Writing suggestions to UserVoice: yes, but: (a) writing that takes time (I’m not native English writer and it's my boss' time), (b) I’m afraid no-one will understand me (if even you don’t understand my case), (c) I’ve seen so many chaotic discussions on the internet, everybody having an opinion, (d) even if my proposal gets priority, I may have to wait a long time and prolong my paid subscription to get the update, (e) CC is paid software, so I expect DevArt to actively pick up ideas that improve the product. If some other forum reader understands my case, I'd be happy to know. I will be on vacation Monday to Friday next week (will be back Monday 2014-07-14).

Post Reply