Created: 2006-11-09 by SzilveszterFarkas
This specification is about how to handle conflicts on GUI side.
- let the user know that there are conflicts in the tree
- find a solution to resolve them (call a 3rd party tool for this purpose)
Currently there is no GUI for handling conflicts in Olive. It is needed, because merge operations are very common in distributed VCSs. Of course there are cases when some conflicts appear, and Olive should be able to handle them well.
- Joe has merged a development branch into the mainline, but some conflicts appeared. Olive displayed a dialog telling him that there are conflicts, but he doesn't really know what's next, or how to resolve those conflicts.
Basically there will be two new dialogs introduced.
Dialog: Conflicts encountered
Currently the user only gets a notification if there are conflicts after the merge. This dialog would show up instead of that notification.
The dialog includes the list of the conflicts (path to the files), and a note telling the user to choose the Resolve conflicts option from the Branch menu (see next point).
Dialog: Resolve conflicts
I have two ideas for this dialog.
The first approach just lists the conflicts with a checkbox in front of them and the user could select which conflicts he/she wants to resolve. Of course a button with Select all/Deselect all feature would be added.
The other one would have the same list, but the user could be able to run a meld-like application to resolve the selected conflict (so he/she doesn't need to switch to another application to do that, it could be run from Olive). This would also involve integrating meld into bzr-gtk/Olive (there is already a bug filed about this: #70477).
This feature would not affect the current codebase except from connecting the appropriate signals and inserting the various menu entries into the glade file.