Versioning

Resources are versioned in order to capture a snapshot of the current state of the resources at one specific point in time.  

Base Versions

A base version of a resource represents the resource version that was last added to the workspace. 

Enabling the Show Version Info... menu item in the Navigator or Packages view displays the base version of each released file.

Versionable Resources 

Resources other than projects (i.e. files and folders) cannot be explicitly versioned.  However during synchronization these types of resources are implicitly versioned when they are released to the stream.

Versioning a project save the line-up of all resource versions in the project. The difference between versioning from the workspace or from the stream is in deciding which child resource versions should be part of the project version.

Version from Workspace

When versioning a project from the workspace, the base version of the resources in the workspace are captured as part of the project version.  This is the preferred method of versioning a project because you know exactly which resource versions will be in the project version. 

This operation is allowed if you have outgoing changes or unreleased changes. Unreleased changes are simply ignored and resources with outgoing changes can still have their base versions be part of the project version.  Versioning a project with unreleased or outgoing changes is handy if you have to split the project at the point where you started making changes to the resources and release the resources to another stream.

Version from Stream

When versioning from the stream you are versioning what ever the latest resource versions are in the stream at that moment in time.  You should not version your projects from the stream if you don't know what is released in the stream. For this reason, versioning from the workspace is often preferable.

Take for example the case where you want to version a project in a stream even if you don't have it loaded. You are merging changes made on streamB into  streamA and your project is shared with the streamA, and not streamB.  To version the project in streamB with a version name like "merged_on_may_28", you would version the stream contents, not the contents of the Workbench.  Of course, since some repositories do not support locking of streams, you need to ensure that nobody else releases into streamB concurrently. You can do this by using social protocols. 

Version Selected Resources Dialog

In this dialog, you can choose the version labels for the projects you are versioning.  You can only choose the version label for the project level; resources are versioned when released.  

Here is what the Version Selected Resources dialog looks like:

Version dialog

  • See CVS Version Label Syntax Rules above.
  • Version Label Options

    Automatic

    Versions each project with an automatically generated label.  This is the default option.

    One Name

    Versions each project with the label specified in the text area.

    Name Each

    You can specify the name of each project you are versioning.

    Here is the dialog you will be presented with for each project when choosing this versioning option:

    Details Button

    The details button shows all existing versions.

    Version name dialog

    CVS Version Label Syntax Rules

    Version labels must meet the following criteria:

    Note: Periods are not allowed in CVS version labels. It is suggested that you use dashes or underscores instead.

    Automatic Version Labeling

    If you select Automatic version labeling format, the following "guessing" schema is used to assign version labels.

     
    Copyright IBM Corporation and others 2000, 2002