Real Versions and Virtual Versions

The difference between the Keep and Promote commands highlights an important aspect of the way that AccuRev organizes and manages development data. It also highlights the difference between backing streams ('parent stream', 'basis stream') The stream that is just above a given workspace or stream in a depot’s stream hierarchy. The given workspace/stream inherits versions from the backing stream. and workspace streams The private stream that is built into a workspace. All new versions of elements are originally created in workspaces; AccuRev records these versions in workspace streams..

Real Versions

All 'real' development -- both content changes A change to the contents of a file element, recorded in a new version created with the Keep command. For a link element, a change to the target pathname is a content change. See namespace change. and namespace changes A change to the pathname of a file or directory element: either renaming the element in place or moving the element to a different location in the depot’s directory hierarchy. -- takes place in workspaces, not in dynamic streams A stream whose configuration changes over time, with new versions promoted from child workspaces and/or from other dynamic streams. It also inherits versions from its parent stream. or reference trees A directory tree in users’ disk storage that instantiates a particular dynamic stream or snapshot. It contains a copy of the current version of each element in the stream or snapshot. A reference tree based on a dynamic stream can be updated, to incorporate the stream's recent changes.. The following commands create a new real version of some element in the built-in workspace stream The private stream that is built into a workspace. All new versions of elements are originally created in workspaces; AccuRev records these versions in workspace streams. of some AccuRev workspace A location in which one or more users perform their work, using files under version control. Each workspace consists of a workspace stream in the repository and a workspace tree in the user's disk storage..

Virtual Versions

Unlike the commands listed above, the Promote command does not record a change to the contents or pathname of any element. Rather, it makes an existing real version available in a new location: a particular dynamic stream A stream whose configuration changes over time, with new versions promoted from child workspaces and/or from other dynamic streams. It also inherits versions from its parent stream.. The version that Promote creates in a dynamic stream is called a virtual version; a new virtual version is a pointer to, or alias for, an existing real version in some workspace stream.

Virtual Versions in Workspace Streams

The commands Send to Workspace and Anchor are special. They create a new version in a workspace stream, but the new version is virtual, not real. Why? It's for consistency with the above descriptions of real and virtual versions: