Branching
Each branch has a stated purpose, which may change over time.
Major branches have a labeled branch point.Minor branches may use a time rule branch point.
All branches are eventually merged back toward main, which captures ongoing improvements.
Branches for subprojects are merged back as soon as possible.
The main branch is handed off to different release efforts over time.
Side branches are used to stabilize baselevel, so project branch can move forward.
Each release has a patch branch.