Bug 512455 - Merge Tool is not very friendly to use
Summary: Merge Tool is not very friendly to use
Status: NEW
Alias: None
Product: EGit
Classification: Technology
Component: UI (show other bugs)
Version: 4.6   Edit
Hardware: All All
: P3 enhancement with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-20 13:32 EST by Marc-André Laperle CLA
Modified: 2020-04-30 04:20 EDT (History)
4 users (show)

See Also:


Attachments
Conflict screen shot (143.35 KB, image/png)
2017-02-20 13:32 EST, Marc-André Laperle CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marc-André Laperle CLA 2017-02-20 13:32:26 EST
Created attachment 266905 [details]
Conflict screen shot

I’ve been using EGit for years but never really made use of the Merge Tool because it wasn’t clear how to use it to me. I normally resort to opening the file in the Java Editor (through the Package Explorer or the Staging view+Open working tree version), then I resolve the conflicts manually. I think a lot of people do that based on what I’ve noticed among my colleagues.

I’m trying to identify what makes it unclear to use. I attached a screen shot as a basis of the discussion. This is a case of a rebase with conflicts, which should be pretty common.

1. Which side is from my branch, which side is from the other branch?

It’s not clear which commit came from the branch I’m rebasing vs the commit from the branch that I’m rebasing on. Sometimes, the commit title was written by me on the local branch so it’s easier to know, but it’s quite usual that it will not be my commit.

2. Where do I edit? Where does the result go?

It’s not clear on which side the result of the merge should go. The only way I figure it out is I click on one side and try to type.

3. What was there before?

Sometimes, it is important to know what was there before in other to decide what should be the resolution.

4. What do I do once the conflict is resolved?

It's not clear where to go in the UI to mark the conflict as resolved. You have to go through the context menu of either the editor, the package explorer or the staging view. But given that this is a mandatory step in the conflict resolution workflow, it should be much more prominent.



I’m not sure what would be the solutions for all the points but there are a few things that come to mind:
- Better labeling of each side. Could be “ours”, “theirs” and put “(editable)” for the side that is editable.
- A three-way merge with the ancestor actually shown, see for example http://stackoverflow.com/questions/572237/whats-the-best-three-way-merge-tool
I have used p4merge and Araxis before. In Perforce you have 4 panes, including the Output/Result. In Araxis you have 3 but the ancestor is the editable one in which you merge things into. I’m not sure why is better as it can also be confusing to have the ancestor be the result but having 4 panes takes a lot of screen estate.
- A button in the tool bar for "Mark as resolved" or "Add to index".