Handle conflict edge cases after push
What does this MR do?
- When a branch has just been pushed, sometimes we don't appear to be able to get the commits needed for conflict resolution from disk. Handle that better.
- When a branch has just been pushed, we don't update the mergeable status immediately, so double-check when we're deciding if we can resolve conflicts in the UI.
Are there points in the code the reviewer needs to double check?
I have no idea how or why we get the Rugged errors when we already have the commit SHAs, but we do. I tried not to make the spec anything more than it is, because I don't know what the root cause it.
When we check for conflicts, we could update the MR, but I'm wary of that because the update would come just from viewing the page. I think this at least is less bad.
Why was this MR needed?
Not everything gets updated at the same time on push.
What are the relevant issue numbers?
Closes #21275 (closed), closes https://gitlab.com/gitlab-org/gitlab-ce/issues/21415.