No option to rebase before Merge immediately in fast-forward merge trains
Problem Summary
In #428197 (closed) we changed MergeRequest#should_be_rebased?
to be false
when fast-forward merge trains are enabled, since fast-forward merge trains can automatically rebased.
Users are no longer presented with a rebase
button before Merge immediately
action. This makes it so that Merge immediately
will fail unless the user rebases, but there is no call to action to do so.
See the users note: #428197 (comment 1679362367)
We then later hid the merge immediately button if the branch is behind which isn't ideal becuase it's not obvious why it's not there or how to get it back. But it will lead to less failures. !138866 (merged)
We need a manual or automatic way through the UI for the user to rebase prior to merging immediately so that we can unhide the merge immediately button when the mr source branch is ahead of the target branch.
Steps to reproduce
Example Project
What is the current bug behavior?
What is the expected correct behavior?
Relevant logs and/or screenshots
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Proposal
This MR is blocked by #895 / #444978. But when they are done, test whether it works with merge trains out of the box. The merging itself will almost certainly work, but there might be some checks on the backend and frontend that need to be tweaked to make the merge immediately button show again.
Workarounds
- When
Merge immediately
fails: Rebase the merge request, either using the/rebase
quick action or locally - For
Rebase without pipeline
: Rebase locally and use theskip.ci
push option