Reverting a merge request should revert the commits in the way they were merged
## Problem to Solve
The ability to [revert a merge request](https://docs.gitlab.com/ee/user/project/merge_requests/revert_changes.html#revert-a-merge-request) is only available when using a `merge commit` strategy. Even if you're using semi-linear with a merge commit the revert MR only reverts the merge commit and not the individual commits.
This leaves a harder to follow and inconsistent history as to what commits have been added and removed in a project.
## Proposal
Revert support should be extended to match the style of merge that the changes were added with. This means if you merge with fast forward, a revert should be possible that reverts each commit individually from a merge request. Similarly if you're using a semi-linear with merge then we should revert the individual commits and the merge commit.
issue