About streams

Dimensions CM supports Agile development by using streams to manage and control updates between local work areas and a repository.

Streams overview

A stream is a container in a Dimensions CM repository for a set of item revisions. Streams are used to isolate the development of features from the main code base. Typically each development team uses a child stream that has been branched from a parent mainline stream. The child stream is merged back into the mainline as required.

You can work with streams in the desktop and web clients, the Windows Explorer, Visual Studio and Eclipse integrations, and the dmcli and the developer command-line utilities.

Streams enable an iterative process where you can:

  • Use the Update operation to copy item revisions to a local work area from a repository. See the following topics:

  • Modify the item revisions locally, build, and test. See About editing items.

  • Use the Merge operation to resolve any conflicts with the mainline; build and test the merged item revisions.

  • Use the Deliver operation to commit the merged item revisions to the repository.

For details about working with streams, see the following sections:

Web client: Work with streams
Desktop client: Work with streams

A stream cannot contain parallel versions of the same item and you cannot use functions that operate on individual files, such as check out and check in.

Use streams if your team plans to:

  • Adopt, or is already practicing, Agile software development practices.

  • Work in parallel on the same code for the same release.

  • Manage multiple parallel streams of development with a protected mainline.

  • Enable developers to easily branch and merge projects.

  • Enforce a single line of descent to prevent conflicts.

  • Make developers responsible for the impact of their changes on the rest of the application.

Note: Your system administrator can configure your database to use only streams, only projects, or both streams and projects.

Back to top

Stream types

You can create the following types of streams:

  • An empty stream.

  • A stream based on a release or tip baseline. These types of baselines only contain one revision of each item. To create a stream containing the items from a project, first create a tip baseline of the project and then create a new stream based on that baseline.

  • A stream based on any version of another stream. The new stream is a child of the parent stream from which it was created.

  • A stream based on any version of a project.

  • A topic stream, which is a temporary stream that you use for a set of defined changes, for example, to fix a defect or develop a small feature. For details, see the following topics:

    Web client: Shelve changes to a topic stream
    Desktop client: Shelve changes to a topic stream

Back to top

See also: