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 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 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.