Conflicts between composite baselines
A conflict can occur when a stream configuration includes multiple composite baselines where each composite baseline selects a baseline of the same component. A stream cannot select two different baselines of the same component. If you attempt to perform an operation that would cause this situation, UCM recognizes the conflict and forces you to resolve it before completing the operation.
Baseline C.BL3 a member of composite baseline AC.BL1 and baseline C.BL1 a member of composite baseline BCD.BL1.
In the DevOps Code ClearCase environment, a view must have an unambiguous rule for selecting versions of an element. In UCM, a stream can only use one baseline to select the versions in a component. Rebase operations and baseline recommendations that would result in conflicts are blocked.
To resolve the conflict, you are forced to explicitly specify a baseline for the component in question. This chosen baseline is said to override the members of the composite baselines in conflict. A baseline that you explicitly specify as an override baseline in the foundation set of a stream, regardless of whether it resolves a conflict, overrides any baseline of that component that is implied by a composite baseline.
You can choose as the override any baseline of the component involved in the conflict. The overriding baseline does not have to be one of the conflicting baselines. The project integrator can select a baseline that is compatible with the other baselines in the baseline set of the project. In Figure 3, the project integrator could have chosen baseline C.BL1 as the override, instead of baseline Cx.BL3. However, the integrator must ensure that the versions selected by composite baseline AC.BL1 are compatible with the versions selected by baseline C.BL1. With the selection of the override Cx.BL3, the AC and BCD subsystems need to be checked to ensure that they are compatible with baseline Cx.BL3.
- Explicitly remove the overriding baseline from the foundation set (for example, with cleartool rebase –dbaseline).
- Replace completely the foundation set. This happens when you rebase to the recommended baselines of the parent stream (cleartool rebase –recommended).
The decision to select a baseline override is solely for the project integrator. It is not a decision that can be automated. Each project team has to determine the correct override in each instance of a conflict.