Enable diff3 for conflict resolution

Problem to solve

Merge conflicts are painful to resolve. GitLab offers a merge conflict resolution tool in the UI, but it's often not clear whether we should take "our" or "their" changes, or some combination of the two, when using it.

Intended users

Further details

Git includes a diff3 mode for conflict resolution that tries to solve exactly this problem - it shows additional context about the ancestor commits, making it easier to pick a side or combination of changes, especially for the simple conflicts we allow resolution of in the UI.

http://psung.blogspot.com/2011/02/reducing-merge-headaches-git-meets.html

https://blog.nilbus.com/take-the-pain-out-of-git-conflict-resolution-use-diff3/

Proposal

Enable diff3 mode for our conflict resolution UI. I'd have no qualms about making this unconditional, but we could consider allowing the user the select the merge mode when they invoke the UI, if diff3 is unpopular for reasons I'm unaware of.

Documentation

Testing

What does success look like, and how can we measure that?

What is the type of buyer?

Links / references