The few teams I've worked with all seem to handle this in slightly different ways. I get the impression that most teams grow an ad hoc system around the behaviour of the first contributors. There's a lot written about the benefits of Continuous Integration, but I'm not sure how many actually use it.<p>Do you use pull requests? Or emailing patches? Or does everybody push directly to master?<p>Do you rebase or merge branches? How do you resolve merge conflicts?<p>Do you have to pass regression testing? Does this happen before or after integration? Are any other statistics gathered during the build (e.g. linters, static analysis, cyclomatic complexity, code coverage)? Are these data considered blockers?<p>Do you run a continuous integration service (e.g. Jenkins, buildbot)? Are greenlights from this a necessary prerequisite before merging?<p>Do you use actual Continuous Integration? That is, all contributors merging with the trunk multiple times a day.<p>Do you have to pass code review? How many reviews? How do you resolve issues raised in code review?<p>Do all contributors have authority to merge their own code into the trunk? Or, are there individuals with authority who must service every pull request?