Recently
Separate project branches for each different teams
Projects merges to release branch when they reach a stable milestone
Projects are isolated from immature changes in other projects
Can defer inclusion of a project in a release
Developers use private branches