Branching and creating views
Branches are used in base ClearCase® to enable parallel development. A branch is an object that specifies a linear sequence of versions of an element. Every element has one main branch, which represents the principal line of development, and may have multiple subbranches, each of which represents a separate line of development. For example, a project team may use the main branch for new development work while using a subbranch simultaneously for fixing a bug.
As project manager, you tell developers which rules to include in their config specs so that their views access the appropriate set of versions.
UCM uses branches also, but you do not have to manipulate them directly because UCM layers streams over the branches. A stream is a DevOps Code ClearCase object that maintains a list of activities and baselines and determines which versions of elements appear in a developer’s view. In UCM, a multiple-stream project contains one integration stream, which records the shared set of elements of the project, and multiple development streams in which developers work on their parts of the project in isolation from the team. The project integration stream uses one branch. Each development stream uses its own branch. You can create a hierarchy of development streams, and UCM creates the branching hierarchy to support those streams.
Although most customers use DevOps Code ClearCase to implement a parallel development environment, UCM and base ClearCase also support serial development. In base ClearCase, you implement a serial development environment by having all developers work on the same branch. In UCM, you create a single-stream project, which contains one stream, the integration stream. All developers work on the integration stream rather than on development streams. Serial development is intended only for very small project teams whose developers work together closely.
As project manager of a UCM project, you need not write rules for config specs. Streams configure developers’ views to access the appropriate versions on the appropriate branches.