Parallel Development Using Dimensions CM

Parallel Development Using Dimensions CM


The recommended way of doing the parallel development in Dimensions CM is to use streams. Streams represent branches of development. They contain files and folders, keep track of their revisions, history and pedigree.

Different teams may use separate streams for parallel development. A stream may be created based on a mainline stream or project and merged to it later.

You can work with streams using the command line, in the desktop and web clients, the Windows Explorer or any of the IDE integrations.

Topic Streams

Topic streams are private development branches by default only visible to the originator. With topic streams you can:

  • Isolate work from an existing public stream
  • Hide the changes until they are ready to be merged back into a public stream
  • Create a backup of your local changes in the repository when you need to switch to other task. This is called shelving
  • Use pull requests to automatically integrate changes to the parent stream


Projects may also represent a branch of development. Unlike streams they employ the exclusive lock model, where developers request write access for a file before making changes. Projects are more suitable for: managing non-software assets or large binary files, work in a regulated environment or for using remote replication.

Different people may need to work on the same files for different purposes. In this case, projects use version branches to separate concurrent revisions of the same file, and those revisions need to be consolidated (merged) on a file level.

Stream Relationships

  • Items. The stream contains a list of item revisions, it owns items
  •           Requests. By default any created request is related to a stream, but it may be not related to a stream. The requests may be listed in a stream inbox or catalog view and used for delivering changes. A stream may be configured to always require a request for delivering changes
  •           Other streams/projects. The stream may be based on another stream or a project or be parent to a child stream.
  •           Baselines. Baselines are snapshots of a stream state at a particular time. Baselines are created based on a stream or may be used by a stream.

 Parallel Development

Streams enable interactive update-modify-deliver-merge process for developers.

  •          Use Update to get content from the remote repository to a local work area
  •          Make local changes, build and test
  •          Use Deliver to commit changes to a repository
    •         Streams maintain the single line of descent for item revisions, this ensures that files in the repository don’t have revisions with conflicting content
    •         Developers don’t obtain an exclusive lock for files, and that allows to work on the same files in parallel
  •          Use Merge to reintegrate the changes between the development branches. 
    •      Interactive merge allows to resolve any conflicting content
    •      Pull requests automate merging from a topic stream to a parent stream




Labels (1)


Some content on Community Tips & Information pages is not officially supported by Micro Focus. Please refer to our Terms of Use for more detail.
Top Contributors
Version history
Revision #:
1 of 1
Last update:
‎2019-05-30 21:11
Updated by:
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.