Stream types

You assign stream types according to the stream’s expected usage, stability, and flow of change:

Type

 

Description

 

Development

  • code that changes frequently
  • experiment without destabilizing the mainline stream

Mainline

 

  • code that changes somewhat frequently, but is more stable than code in development streams
  • it is common to implement new features in the mainline.

Release

 

  • the most stable code and the closest to being released
  • enable you to put existing features in the final state

Task

 

Virtual

 

Merge down, copy up

A release stream is more stable than its mainline stream parent.

A development stream is less stable than its mainline stream parent.

Merging incorporates another stream’s changes into your stream, and can require you to resolve conflicts.

Copying duplicates the source stream to the target. Changes are merged down (to streams of lesser stability) and copied up (to streams of greater stability).

Stream types - most stable to least stable

Stream Type Stability Merge Copy

release

Highly stable

to parent

from parent

mainline

Stable per your policy (for example, all code builds)

from child (from release, or to development)

to child (to release, or from development)

development

Unstable

from parent

to parent

task

Unstable

from parent

to parent

virtual

N/A; used to filter streams

N/A

N/A

Also in this section: