Skip to content

Provide the option to create a follow-up MR specifically with the changes that are causing a conflict

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

Problem to solve

Currently, when working on a merge request where files have been changed on the target branch, we need to resolve those conflicts before the merge operation is finished. While working in a large repository, developer/maintainer productivity gets hampered due to this requirement as it breaks the workflow and stops from proceeding until the conflict has been resolved.

Further details

The inspiration behind this feature request comes from how Jujutsu VCS resolves what is called as "First-class Conflicts". Jujutsu VCS can record conflicted states in commits. For example, if you rebase a commit and it results in a conflict, the conflict will be recorded in the rebased commit and the rebase operation will succeed. You can then resolve the conflict whenever you want. Conflicted states can be further rebased, merged, or backed out. Additional details on how this experience works in Jujutsu VCS can be found in the Jujutsu documentation.

Proposal

GitLab could create a commit that “removes” the related changes for the conflicts the user chooses, and create a follow-up MR with those changes.

The proposed way of managing conflict has the following advantages:

  1. Single workflow for resolving conflicts.
  2. Allows you to postpone conflict resolution until you're ready for it.
  3. Enables collaborative conflict resolution.

Proposed User Experience

The way GitLab handles unresolved threads in an MR and moves them to an Issue, could be a good inspiration for Product team's consideration in implementing this experience.

Further, this could be considered a Duo Feature which could be invoked via Chat or quick action command.

Edited by 🤖 GitLab Bot 🤖