Probably the most common AccuRev operation is starting with an existing version, making changes, and then executing a Keep to save the changes in a new version. The existing version might have been created by you -- for example, with a previous
Keep operation. Or it might have been created by someone else: that user promoted the version, then you brought it into your workspace with an update.
The version in your workspace that is created by Keep is termed a real version, because it represents a change to the element. Other operations can create real versions in your workspace, too:
Rename,
Defunct,
Undefunct.
The Version Browser uses a solid black line to connect the existing version (termed the direct ancestor or predecessor) with the new version. (Exception: a version created by a revert operation is connected to its direct ancestor by a
dashed blue line.)
Workspaces contain real versions, which represent changes to elements. However, almost all versions in dynamic streams are virtual versions, created with Promote. (The one exception is real versions that are created in a dynamic stream using
Revert.) Each virtual version is an alias for -- that is, a pointer to -- some real version in a user's workspace. The Version Browser uses a green line to connect a virtual version in a dynamic stream to the corresponding real version in a workspace.
There's one exception to this scheme. The Anchor or
Send to Workspace operation creates a virtual version in a workspace. It's a virtual version because it doesn't represent a change to the element, but merely the restoration of an existing version to the workspace.
Successive Promotions. In a depot with a deep stream hierarchy, it's common to successively promote a particular version to the parent stream, then to the grandparent stream, then to the great-grandparent stream, etc.
Example: This screen shot shows a merge from the backing stream
vb to a workspace within
Workspace Group 1.
The new, merged version is 2 which is in a workspace within Workspace Group 1. (You can see which workspace by mousing over the version box. In this example, it is WS2.)
When you select a version created by Patch, the Version Browser highlights in green the versions contained in that patch.
A revert operation is the opposite of a patch operation. (And we describe Revert as performing a 'reverse patch' operation.) Whereas a patch
adds a selected set of changes, a revert
removes a selected set of changes.
See Reverse Patch: Removing Content Changes for more information on how these ancestry lines are created.
The CLI purge command is analogous to the
Revert to Basis function in the GUI. Assume that you have started to work on a file and that you have made one or more keeps in your workspace. Then something happens: perhaps the changes are no longer required due to a new project direction, or you’ve come up with a better approach and want to start over from scratch. So you perform a
Revert to Basis (
purge) to abandon all your keeps and restore the file to the way it was when you started working on it. This means that your keep versions are something of a dead-end. This is represented in the Version Browser by a magenta line and an asterisk in the version box.