I'd like to revisit (and hopefully reassert) the FDD view on version control, and configuration management.
In FDD we use the term "promote to build" as the final step in BBF, which directly refers to the action of promoting (re-labeling) a file in the CM system. Modern CM/VC systems such as Perforce and Microsoft Visual Studio Team System do not include the capability to do promotion groups and labeling. In a Perforce whitepaper, they explain that promotion groups lead to "bushy trees" which they describe as an anti-pattern.
I've seen some teams doing FDD advocate the notion that each Feature Team makes a branch for each Chief Programmer Work Package. This seems wrong to me. The claim is that modern tools make merging much easier than it was in earlier years and that the transaction cost of a branch and merge is almost zero.