Add the ability to successively apply the conflict solver

Chris Jaquet 3 years ago updated by Alexander Zhezherun 3 years ago 3

It often happens during a merge that a number of files in a repository will have conflicts. It is already possible to apply the conflict solver to individual files, but I would like to propose the following workflow:

During a merge when multiple files are conflicted:

  1. Select all the conflicted files.
  2. Choose to activate the Conflict Solver.
  3. For each file in the select list open the conflict solver (as is done for a single file)
  4. User solves conflicts (or decides to cancel), thus terminating the conflict solver for that file.
  5. SmartGit shows a dialogue with the following options "Stage file", "Skip file", "Cancel".
  6. "Stage file" will stage the file and SmartGit will automatically open the conflict solver for the next file in the selected list.
  7. "Skip file" will not stage the file, or mark it as resolved, etc, but will move automatically to the next file in the list, opening the conflict solver for the next file.
  8. "Cancel" will stop the process completely. Files already staged will remain staged.

This will, in my opinion, make merging multiple conflicted files much easier. There could also be a button on the ToolBar which starts the conflict solver for all conflicted files in the current repo, without the user having to select them all.

It will be good also to have "Resolve ALL Conflicts" menu command which will work on all files with conflicts. Selecting 3-4 files with conflicts from list of 20-40 modified files is not very easy thing IMHO.

It is very easy.

Way 1: sort the file list by State. Then the conflicting files are all one beside each other.
Way 2: (temporarily) unselect View|Show Stages Files, e.g. by using the corresponding toolbar button.

Sorry but it's not that easy. Sure we can do many interesting things by sorting, unselecting and clicking many times and don't forget returning to previous "main" state of view. So I'm much more prefer to have new "Resolve ALL Conflicts" menu command. :)