The SVA Release Command
You normally work with your project on its trunk. When it comes time
to make a release of your software, you stabilize the trunk, and then
make a release branch. The release branch allows you to later
fix bugs for a release without having to release the new and unstable
features that now exist in the trunk.
Version Numbers
Before we talk about release branches, we must first talk about
version numbers and what SVA understands. SVA puts strict limitations
on version numbers in order to reliably parse and sort version
numbers.
A version number is made up of three parts, major, minor, and macro.
For example, the version number 10.4.8 has a major version of 10, a
minor version of 4 and a macro version of 8.
Each part of the version number must be an integer, and must not be
greater than 6 digits.
SVA can properly sort version numbers. For example, version 1.0.10
comes after version number 1.0.2. So, SVA actually sorts the version
numbers knowing what they mean, instead of just doing a lexical sort.
Because of this, when using SVA, you must use this version numbering
scheme.
Branching the Trunk for a Release
To make a release branch from the current point of the trunk, use the
release command:
$ sva release 1.0.0
This will create a release branch for major.minor version 1.0, and
then tag the release branch with macro version 0.
Tagging an Existing Release Branch
If you already have a release branch (let's use 1.0 from above) and
want to tag a new release on it (e.g. 1.0.1), just use the release
command with the new version number. SVA will do the right thing.
$ sva release 1.0.1
Working on a Release Branch
Once you have created a release branch, you should only use the bug
command to make changes to it. Otherwise, you'll have to arrange to
merge the changes back to the trunk by hand.