I should state that I only have experience with GitHub, so I might
mix up terminology when trying to map things to GitLab.
Is there a preference whether development branches should be created
on the repository itself versus a forked copy? What I am used to on
GitHub is working from my own fork, creating branches as needed, and
then submitting a pull request that can be merged when validated and
approved. I see some merge requests for the project are coming from
branches within the origin repository. Is this a policy thing or
something where GitLab just fundamentally works differently than
GitHub?
People without developer permissions cannot push on the
shared repository. Therefore, they always have to open
merge requests from a fork. Once you have been granted
developer priviledges, you can create branches on 'origin'
and you have the choice. A branch on the shared repository
means it's a little easier for others to check it out
(though it's not hard with branches on forks; GitLab
helpfully displays pastable commands when you click
'Check out branch' in a merge request).