Moving version tags

Warning: Although many people would prefer a CVS version to be frozen in time and not be modifiable, version and branch tags in CVS are mutable. As a result many are convinced that modifying a version is bad practice, but there are a couple of scenarios where it actually comes in handy. With that said, please be cautious when moving tags around.

Moving a tag on a single file

Let's say that you have just submitted your build by versioning your project as R1. But you soon after discover that there is a small change to a file that should be made and included in the build. Instead of having to re-version the project you can move the R1 version tag for the modified file.

  1. Modify the file(s) Select the file that was modified after R1 was created and from the context menu select Team > Show in Resource History.
  2. From within the Resource History view select the revision that should be marked with the R1 version.
  3. From the context menu select Tag with Existing....
  4. Select the R1 version from the dialog box and press OK.
  5. The resource history view will be updated to confirm that the version had been moved.

Moving a tag from within the repositories view

Many projects use a well defined version name for their current stable lineup in HEAD. For example, by versioning HEAD with the STABLE tag the build scripts could simply checkout the STABLE version for builds. As the code evolves the STABLE tag is moved regularly to mark the most current stable lineup. The repositories view provides an action for moving an existing tag.

  1. Open the Repositories view and select a resource.
  2. From the context menu select Tag with Existing
  3. A tag selection dialog will appear from which you can select the tag to move. If the tag you wish to apply is not show in the list, you can click Refresh from Repository. If this doesn't find the tag, you can click Configure Tags which opens a dialog that allows you to search for tags on specific files in the repository.
  4. Then press OK and your tag will be moved. The operation will move an existing tag to the selected resources and can be used to move both version and branch tags.

Related concepts
Team programming with CVS

Related tasks
Synchronizing with the repository
Committing