Streams and components

A stream is a repository object that includes one or more components. A component is a collection of related artifacts, such as a set of related Eclipse plug-ins or a group of documents that comprise website content.

Artifacts under source control are grouped into components. Any group of files and folders that share a common root can be a component. A stream is a collection of one or more components.

Streams are like the branches that are found in other source control management systems, but have a number of additional capabilities. Any component in a repository can be included in zero or more streams. A stream can include at most one version of any component. By using multiple streams, a development organization can work on projects that use different versions of the same components. For example, a stream that is dedicated to the development of a new software release would include the most recent version of the release components. Another stream that is dedicated to the maintenance of an earlier version of that software release would initially include the component versions that were part of that release.

Streams and components in the repository

Streams and components are repository objects. After you have created a repository workspace and initial components, you can add artifacts to the components and share them with your team.

Streams and components in a sandbox

Streams and components are not defined in a sandbox. The file and folder objects in each component in a repository workspace are loaded into the local file system as files and folders. Only one version of each file or folder is loaded, which is the version that is associated with the baseline or stream that you specified when creating the workspace.

Typically, you only load one workspace into a sandbox. You can load more than one workspace if there are no naming collisions in the loaded root folders.

Figure 1 shows how change sets that are created in a sandbox and then checked in to a repository workspace can be shared by delivering them to a stream that all team members use. Because the stream is a flow target of all team member repository workspaces, the change sets that it contains are accessible to all team members.
Figure 1. Change sets checked in to a repository workspace can be delivered to a stream to make them available to other team members
Change sets checked in to a repository workspace can be delivered to a stream to make them available to other team members