tla commit supports a couple of little known options: --seal and --fix. These options are used to create version-0 and versionfix-n revisions.

Sealing and fixing

An Arch version can actually be in two states:

open

usual state, for base-0 and patch-n revisions.

sealed

for version-0 and versionfix-n revisions.

A version-0 revision is created using commit or tag with the --seal option. Once a version is sealed, you can only commit or tag on it if you specify the --fix option. That will create versionfix-n revisions.

Except for their naming and requiring extra options to commit and tag, sealed revisions are completely equivalent to open revisions. They only exist to provide information to the human user, and to prevent the user from mistakenly creating new revisions where they do not belong. Sealed revisions are a convenience feature.

The revision name prefixes are chosen so a simple version sort will give the correct ordering. Revisions can only be created in the following order:

  1. base-0, with import or tag;

  2. patch-n, with commit or tag;

  3. version-0, with "commit --seal" or "tag --seal";

  4. versionfix-n, with "commit --fix" or "tag --fix".

state-transition-of-revision

Examples

Release and bugfixes

The milestones of Frobnicator are archived in frobnicator--release--1.0, a symbolic version, that is a version where all revisions are created with tag.

Cycling archives

When Cycling Archives you could seal each active development branch with a log message giving the name and location of the archive where the branch is continued.

Sealing and fixing (last edited 2005-02-16 05:51:27 by MichaelOlson)