The rebase operation

To take advantage of a newly recommended baseline, developers update their work areas with the new baseline by performing a rebase operation (see the following figure).
Figure 1. Rebase operation

Pat's development work area is currently configured with baseline BL1. After the stream rebases to baseline BL2, the stream is configured with a new activity from Baseline BL2.

A component in Pat’s development stream is configured with baseline BL1. A rebase operation changes the configuration of the stream to baseline BL2 from the integration stream. The rebase operation merges files and directories from the integration stream or feature-specific development stream to the development stream.

A rebase operation reconfigures a stream by adding, dropping, or replacing one or more of the stream foundation baselines. It is typically used to advance a stream’s configuration, that is, to replace its current foundation baselines with descendant ones.

Foundation baselines of the target stream are replaced with the set of recommended baselines from the source stream.

If an element in the stream being rebased contains any changes, the rebase operation merges the changes into the latest version of that element in the stream, thereby creating a new version. All such new versions are captured in the change set of the integration activity that the rebase operation creates.

The rebase operation changes the foundation baselines of a stream. Baselines provide a configuration that includes delivered work. If a specific stream must use work that has been included in a baseline in an appropriate stream, you rebase the specific stream to the desired baseline.

In a rebase operation, a developer selects one or more baselines to add or drop from the configuration of the stream. Just as a view can only select one version of an element, a stream can only include one baseline for each component. If more than one baseline were allowed in a stream foundation for a particular component, the selection of versions in that component would be ambiguous.

During a rebase operation, the specified baselines replace the current baselines, if any, for their components. Changes that have been made on the stream are merged into new versions, if necessary. A deliver operation always involves merging elements. A rebase operation only involves merging if elements that have been modified in the stream also have new versions selected by the new baseline.