Skip to content

Explore UX for three-way merge #146091

Closed
Closed
@daviddossett

Description

@daviddossett

We're exploring what it could look like to enable a three-way merge workflow in VS Code. Here are some initial ideas to get the ball rolling 👍

Prototype

Here's a brief walkthrough where I set up a simple merge conflict and resolve it with a three-way merge editor:

three-way-merge-walkthrough-converted.2.mp4

Main views

Here are some quick screenshots from the prototype above:

Entry point

I've been exploring the idea of having multiple entry points from a merge conflict state. One is via the existing codelens actions ("Preview Merge")...

entry-point-codelens

..and another via the SCM where there could be an icon button (icon here is just a placeholder) on the file that has conflicts:

entry-point-scm

Preview merge

Here's what the merge editor preview could look like. Here it features a mixed layout with the branches on top and the resulting code below. The branch editors are read-only while the result editor is editable.

default-state

With selections

Here are two examples where selections have been made. One with a selections from different conflicts on each branch:

with-selections

...and another showing the same changes being picked on both branches:

accept-both-changes

Feedback and ideas welcome!

cc @misolori @albertelo @lszomoru @rebornix

Metadata

Metadata

Labels

merge-conflictMerge conflict decorations and actionsmerge-editoruxUser experience issues

Type

No type

Projects

Status

💻 In Development

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions