+32

Add the ability to successively apply the conflict solver

Chris Jaquet 7 years ago updated by Patrick van Logchem 4 days ago 4

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.

Improve Git commands Conflict Solver

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. :)

If each file is treated individually with just a single solver open at any given time, pieces that have to be moved towards other conflicting files currently have to be stored elsewhere, because right now there can be only 1 conflict resolver open at any time.

So, instead of successively resolving a set of conflicted files, it would make more sense to be able to resolve multiple at the same time (ie. allowing opening multiple solver windows), so that any content (base, our or theirs) can be copy-pasted over from one conflict resolver to another.

This would greatly ease dealing with cases where code has been redistributed, causing conflicts in multiple files.