Skip to content

Refactor MergeRequests::MergeService to separate out service classes

This was raised as a pre-requisite for Fast Forward Merge Trains

Background: Adding FF Merge train implementation logic to MergeRequests::MergeService is made tricky by the self-referential inheritance. This makes anything we do a "monkey patch" to get it to work.

To properly fix this, we'll need to refactor the base class to separate out the different merge strategies.

Then after the refactoring is done, we can implement FF Merge Trains logic ontop of it.

There should be a rollout issue for this, as it touches a lot of base code for merges

Edited by Max Fan