Any strategy will work; it is a matter of process and taste. If you're looking for examples from other projects, then consider the Mercurial source code itself.
The Mercurial source has two primary branches: default and stable .
The default in Mercurial code is an unstable "intermediate branch". New features are perfect and tested there. If an error is detected, it is canceled using hg backout .
Releases are made from the stable branch. To fix errors, commits are made to this branch. When the release time is close, default combined into stable to enable all new features.
source share