Let’s say I’m about to start working on a very large feature for a project. That feature will need work from many developers, so it needs a separate branch. On my local fork I make a new branch named bigfeature. I work on it to the point where the code is ready to share with other users, but not ready to go into master.
I want to make a merge request from myuser/bigfeature -> groupname/bigfeature to make the branch available to others. The branch groupname/bigfeature doesn’t yet exist, so I can’t make this merge request. Why not? If the merge request is accepted, the branch will be created. If rejected, then the branch won’t be created on the other remote. Instead, I have to contact whoever has permission on groupname/bigfeature and get them to create the branch by hand. A merge request could have saved us both the trouble.
Also, there’s the other situation where I start work on a feature, but another developer is going to finish it. I start the work then I want to make a merge request to their remote, something like myuser/feature -> anotheruser/feature. Gitlab currently doesn’t even let me type in other user’s remotes as merge request destinations, let alone branches that don’t exist on those remotes.
It should be possible to make a merge request from any visible remote/branch to any visible remote/branch. Even if those remotes are from totally unrelated projects. If I can merge it from the Git command line, I should be able to request the merge from the GitLab web interface.