About 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 an Eclipse plug-in or a group of documents that comprise Web site 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 similar to the branches 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 dedicated to the development of a new software release would include the most recent version of the release's components, while another stream 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. Because they catalog workspace contents, you must create a repository workspace before you can create a component or a stream. Once you have created a repository workspace and added projects to it (by checking them in), you can organize the projects into components.

Streams and components in a local workspace

Streams and components are not defined in a local workspace. 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 (the version selected by the baseline or stream that you specified when creating the workspace) is loaded.

A local workspace can load more than one version of a component (this can happen if the local workspace includes the contents of more than one repository workspace), but only one version of a component can be present in a local workspace at a time. Loading the component from one repository workspace overwrites contents that were loaded from a different repository workspace, after prompting you to allow the overwrite.

Figure 1 shows how change sets created in a local workspace 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 members' repository workspaces, the change sets 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

Feedback