In general, the software will be labeled with the commonly used major.minor.patch notation. For example, a particular software version could be described as DCS version 3.0.1. The specifics for describing software versions using CVS tags is described here:
The naming convention for tagging stable versions will use the major and minor numbers. Unfortunately CVS can not handle '.' in tags, so an underscore will be used. The general format will be
release-major_minor-tag
The minor number will always be tagged with an even number to avoid confusion with some open source projects that use odd minor numbers to indicate an unstable branch.
The naming convention for a branch will be the tag convention minus the trailing "tag".
Example:
The branch tag for release-3_2-tag is release-3_2
If a bug fix on a branch needs to be shipped to someone that does not have CVS access, the files in the branch should be tagged by incrementing the patch number. In this way the shipped software can be identified later by looking at the tag.
Example:
Synchrotron X does not have CVS access and needs a bug fix on release-3_2. The files are changed on the branch and tagged with a release-3_2_1. The files are exported and shipped with the version number.
The naming convention for tagging a branch after it has been merged into the trunk is to increment the patch number followed by a "-merged-date."
Example 1:
A bug fix is applied to release-3_2 branch. The point comes where the trunk needs this same fix, so the change is merged from the release branch into the trunk with the following command.
cvs update -j release-3_2
The branch is immediately tagged again to mark this event:
cvs tag release-3_2_1-merged-05JUL02
Example 2:
If more fixes are applied to the 3.2 branch, it will be possible to again merge the branch into the trunk using this new tag as follows:
cvs update -j release-3_2_1-merged-05JUL02 -j release-3_2
At this point the branch should again be tagged by incrementing the patch number.
cvs tag release-3_2_2-merged-07JUL02
A third merge would use the following command:
cvs update -j release-3_2_2-merged07JUL02 -j release-3_2_1-05JUL02