Creating a variant by branching
Create a variant when your team must change the same product in different ways or independently of each other. After you branch a product, teams can work in parallel. You can create a variant from either a stream or a baseline.
Before you begin
- You must have the Configuration Lead or
Administrator role, which includes permission to create streams from either
streams or baselines and permission to modify stream attributes, links, and contributions
(Modify stream attributes + replace configurations + change
hierarchies).Note: To control who can replace contributions or add, remove, and move contributions in streams, administrators can set finer-grained permissions. For details, see "Configuration Lead" in Role-based permissions for Global Configuration Management.
- Creating a stream directly from another stream does not create a baseline. To capture a frozen set of artifacts for auditing or regulatory purposes, create a baseline and then branch from that baseline. See Creating a baseline to save a milestone.
About this task
Teams can branch from a stream or baseline (initial baseline or a later baseline) at any point during development to create a variant.
Select the best starting point for the teams. Teams use branching to accomplish goals like these:
- Create a stream for parallel development. For example, your team is working on version 3.0, and a customer submits a defect against version 2.0 that must be patched.
- Create a stream to perform experimental work. For example, a small tiger team needs to test a sensor that conforms to new standards before the sensor is added to a product line.
- Create a stream to stabilize work before you complete a release. For example, in preparation for a release, a team branches from the main stream and then uses the separate stream to continue bug-fix development without destabilizing the main stream. The team selectively delivers necessary changes to the main stream so that they control the changes that are pulled in.
- Create a stream to experiment and try out changes, or to explore whether another stream should
replace an existing stream. For example, your team is working on the Adaptive Cruise Control
component of an Automobile platform, and a question arises whether the Luxury Automobile should have
a more sophisticated version. You temporarily replace the current stream with the one for the more
sophisticated cruise control. You can always replace the new stream with the one you used before.
Note: Streams created directly from other streams are not intended to replace the original stream.