Live trunk
Suited for new projects with small teams./trunk - Latest code, constantly being committed to. May not work, code is sanity checked and compilable.
/branches/versions - Stable and tested, weekly/monthly snapshots of the trunk. For reviews and QA, Never changes. Can also be just labels.
/branches/cross_features - Potentially dangerous, experimental and cross-conflicting, cross-team features. Merged to trunk when the feature is done. Should be used rarely.
Team branches
Suited for projects with very isolated teams (especially offshore)./trunk - Stable, fully tested code, never committed to, only merged to.
/branches/teams - A branch for each team, merged weekly or monthly to the trunk with extensive testing.
/branches/versions - Same as "Live trunk". Stable and tested, weekly/monthly snapshots of the trunk. For reviews and QA, Never changes. Can also be just labels.
Feature branches
Suited for more mature projects with more code lines and at least 3 people working on each feature./trunk - Same as "Team branches". Stable, fully tested code, never committed to, only merged to.
/branches/features - branched and merged from trunk after features are fully completed and tested with trunk.
/branches/versions - Same as "Live trunk". Stable and tested, weekly/monthly snapshots of the trunk. For reviews and QA, Never changes. Can also be just labels.