When it comes to Free and Open Source Software (aka FOSS), one of the most critical part to make a project successful is the code flow handling. It indeed represent the way you're going to welcome external contributions.
Most projects have their own contributions rules that differ from one project to another and depend on the very nature of the project. A web application written in PHP/SQL will have very different requirements in this aspect than a GNU/Linux distribution.
The SCM tool used by the project will orient the technical details of external contributions. If the project is hosted on github or gitlab, all theses details are already set in stone.

All the other aspects then need to be defined. It goes from coding style to very specific rules like the need for a unit test for every single API change that contributors might push. Most of the time these rules are written in a document in the source code that every single contributor should read before submitting changes.

So for people that might contribute to a bunch of FOSS projects like me, it's a pain in the ass to remember all theses rules. There's not even a basic skeleton that FOSS projects might have used to incorporate their specific needs. Someone should really write such a document (and this someone will not be me :-)).
I'll say that external contributors might or not continue to push changes to upstream given the way their contributions are welcomed, especially the one that disrespect the contribution rules. If the contributor is gently guided during the code incorporation process, the project might win a regular contributor, if he is ignored because of the disrespect or rejected without any explanations and even worse blamed in public after the code review, the project will loose this contributor forever. Trust me, being ignored, rejected or ashamed during the review of your contribution is way too frequents in FOSS projects. All of these set the global project ambiance and I'll say that a bunch of FOSS projects out there do not have a friendly ambiance and still stand because of one or two contributors that do not understand why nobody stay in the long run.