Streams

This chapter describes how to configure streams, how to propagate changes between them, and how to update them.

About streams

Streams:

  • can be used to manage files in a way that resembles branches, but with additional functionality and structure
  • guide merging and branching actions to support stability and innovation
  • are ideal for implementing the mainline branching model, in which less stable streams first merge down changes to keep up to date with their parent stream, then copy up to the parent when the code or content is more stable
  • eliminate much of the administrative work needed to define branches, create workspaces, and manage merges
  • enable the generation of views for associated workspaces, so you don't need to update views manually to reflect changes to your stream structure

When you create a stream, you configure a stream specification. In the stream spec, you specify the type of stream, and provide information about the files it is associated with, its relationship to other streams, and how files are to be treated for branching and merging.

The stream type indicates the stability of the stream relative to other streams.

The stream’s path information determines:

  • which files to populate the workspace with
  • which files child streams are allowed to branch
  • which changelist to lock the files at

Parent labeling specifies how the stream relates to other streams, helping to determine how change flows through the set of streams.

Note

If you are using Helix server branches and want to use streams instead, see the Support Knowledgebase article, "Migrating from Classic to Stream Depot".