[go: up one dir, main page]

Skip to content

Revise merge conflict workflow to "resolve locally"

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem to solve

The "merge locally" option is helpful for using a local IDE and tooling to work through resolving merge conflicts, but it breaks for users that do not have permissions to push to the destination branch, and provides no guidance on how to get back out of the process or alternative options for those situations, leaving the merge in a worse state than when it started and a frustrated user.

Instead, we should consider revising the interface to offer guidance on resolving the merge conflict(s) locally, and push them back up to the MR for review.

Intended users

User experience goal

The user should be able to resolve merge conflicts in their local environment, and push the resolved changes to the MR source branch in GitLab.

Proposal

There are a few possible solutions:

  1. Replace "merge locally" with "resolve locally" for all users, and provide instructions on how to resolve the merge conflicts on the source branch, and then push the resolved changes to the source branch on GitLab so the MR is no longer blocked due to conflicts and can continue its review and merge process.
  2. Provide both the "merge locally" instructions we currently have, and a second button for "resolve locally" that provides the instructions outlined in option 1.
  3. Offer either "merge locally" or "resolve locally" depending on whether the user has permissions to push to the destination branch.

I vote for option 1 since it would provide a consistent and usable experience for all users.

Further details

The current workflow only works as intended for users with sufficient permissions to push directly to the destination branch, and creates confusion and frustration for anyone who doesn't. This revision would make the experience the same for all users, and not conflict with the other access control and permissions features we offer.

Permissions and Security

Any user with the ability to push commits and new branches to a repository, and create merge requests, would be able to resolve merge conflicts without running into permissions problems.

Documentation

Availability & Testing

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

What is the type of buyer?

Is this a cross-stage feature?

Links / references

Edited by 🤖 GitLab Bot 🤖