Stream hierarchy and default targets

A project can have a hierarchy of development streams that starts with the integration stream (see the following figure).
Figure 1. Stream hierarchy with multiple levels

An integration stream has a child stream which itself has a child stream that also has a child stream.

A development stream is created as a child of either the integration stream or of another development stream. For example, stream D1 is a child of the integration stream, stream D2 is a child of stream D1, and D3 is a child of stream D2.

The parent-child relationship between streams defines the default target of deliver operations and the default source of baselines for rebase operations. The default relationships are the following:
  • A child stream delivers to its default target, the parent stream, any undelivered activities that it holds. For example:
    • Stream D3 delivers activities c1, c2, and c3 to its default target, stream D2.
    • Stream D2 delivers to its default target, stream D1, activities b1, b2, and b3 and the activities that have been delivered to it from its child streams.
    • Stream D1 delivers to the integration stream activities a1, a2, and a3 plus the activities that are delivered to it from its child streams.
  • A child stream rebases to baselines in the parent stream to receive activities that were delivered by other development streams. Typically, these change sets are in recommended baselines. For example:
    • Stream D3 rebases to recommended baselines in stream D2.
    • Stream D2 rebases to recommended baselines in stream D1.
    • Stream D1 rebases to recommended baselines in the integration stream.

Although the integration stream is a child of the project, it does not have a default relationship. If the project manager wants the integration stream to have a default relationship, an integration stream in another project can be specified as the default target of deliver operations and the source of recommended baselines to be used for rebase operations.