Smart Branch & Easy Merge
Software developers can stop living in fear of branching and merging, as it doesn't have to be hard anymore. Of course this fear is because legacy SCM tools, based on the original RCS-models of labeling or tagging, (e.g., Subversion, Perforce, CVS, PVCS, etc.), make it very difficult to manage branching two or more levels off the mainline. This is acceptable for small development teams working on a limited number of products (ideal for one product!), but does not work very well for larger, parallel development efforts.
The AccuRev model of smart branching & easy merging is designed for development teams with ten or more people, working on multiple parallel products (e.g., multiple releases, patches, customer specials, etc.). AccuRev customers report that its approach to branching and merging is the number one reason the tool has been so successful in their environments, implementing their optimal software development processes.

The AccuRev smart branch, also known as a streams, offers the ability to visually create a branch with built-in hierarchy and their process-based relationships. In other SCM tools, branches have very loose relationships, if any, to one another. In AccuRev, because all branches automatically include hierarchy support, each branch knows where its parents, siblings, children and even cousins are located in the development process. Additionally, inheritance of changes and attributes is automatic for all stream-based branches, providing for the automatic population of a new branch with all of its parent's files, directories, and associated attributes. Additionally, branching inheritance provides for propagation of changes from mainline to the lowest level branch in the hierarchy.
Because the AccuRev smart branch manages all hierarchies, it is simple to branch four or even ten levels off the mainline (in fact, there is no practical limit in AccuRev). When changes are made in a branch even ten levels down from mainline, merging is handled easily because all changes from the mainline have already been propagated to the series of branches above the tenth level. No manual tracking of branch paths is required, because AccuRev tracks the significant object relationships. It is easy to be assured that all changes have been merged across all releases, and eliminate both broken builds and unexpected regressions.
As SCM industry experts point out, branching is key to an optimal software development process.
In The Importance of Branching Models in SCM, by Chuck Walrad and Darrel Strom, it is noted that "Among the branching models used in software configuration management, the branch-by-purpose model offers better support for parallel development efforts and improved control of both planned and emergency software releases."
In Software Configuration Management Patterns, Brad Appleton and Steve Berczuk show how proven SCM practices can foster a healthy team-oriented culture that produces better software. The patterns [branching models] are presented with an emphasis on practicality.
For more information on how AccuRev branching models are implemented and architected,
see Stream-Based Architecture of SCM. This AccuRev White Paper focuses on how the stream-based architecture works, and provides a technical comparison with file-based branch and label SCM tools.

