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.