GDB's version is determined by the file `gdb/version.in' and takes one of the following forms:
GDB's mainline uses the major and minor version numbers from the most recent release branch, with a patchlevel of 50. At the time each new release branch is created, the mainline's major and minor version numbers are updated.
GDB's release branch is similar. When the branch is cut, the patchlevel is changed from 50 to 90. As draft releases are drawn from the branch, the patchlevel is incremented. Once the first release (major.minor) has been made, the patchlevel is set to 0 and updates have an incremented patchlevel.
For snapshots, and CVS check outs, it is also possible to identify the CVS origin:
If the previous GDB version is 6.1 and the current version is 6.2, then, substituting 6 for major and 1 or 2 for minor, here's an illustration of a typical sequence:
<HEAD> | 6.1.50.20020302-cvs | +--------------------------. | <gdb_6_2-branch> | | 6.2.50.20020303-cvs 6.1.90 (draft #1) | | 6.2.50.20020304-cvs 6.1.90.20020304-cvs | | 6.2.50.20020305-cvs 6.1.91 (draft #2) | | 6.2.50.20020306-cvs 6.1.91.20020306-cvs | | 6.2.50.20020307-cvs 6.2 (release) | | 6.2.50.20020308-cvs 6.2.0.20020308-cvs | | 6.2.50.20020309-cvs 6.2.1 (update) | | 6.2.50.20020310-cvs <branch closed> | 6.2.50.20020311-cvs | +--------------------------. | <gdb_6_3-branch> | | 6.3.50.20020312-cvs 6.2.90 (draft #1) | |
GDB draws a release series (6.2, 6.2.1, ...) from a single release branch, and identifies that branch using the CVS branch tags:
gdb_major_minor-YYYYMMDD-branchpoint gdb_major_minor-branch gdb_major_minor-YYYYMMDD-release
Pragmatics: To help identify the date at which a branch or release is made, both the branchpoint and release tags include the date that they are cut (YYYYMMDD) in the tag. The branch tag, denoting the head of the branch, does not need this.
To avoid version conflicts, vendors are expected to modify the file `gdb/version.in' to include a vendor unique alphabetic identifier (an official GDB release never uses alphabetic characters in its version identifer). E.g., `6.2widgit2', or `6.2 (Widgit Inc Patch 2)'.
GDB permits the creation of branches, cut from the CVS repository, for experimental development. Branches make it possible for developers to share preliminary work, and maintainers to examine significant new developments.
The following are a set of guidelines for creating such branches:
gdb
should be specified when creating a
branch (branches of individual files should be avoided). @xref{Tags}.
@anchor{Tags}
To simplify the identification of GDB branches, the following branch tagging convention is strongly recommended:
owner_name-YYYYMMDD-branchpoint
owner_name-YYYYMMDD-branch
cvs rtag owner_name-YYYYMMDD-branchpoint gdb cvs rtag -b -r owner_name-YYYYMMDD-branchpoint \ owner_name-YYYYMMDD-branch gdb
owner_name-yyyymmdd-mergepoint
cvs rtag owner_name-yyyymmdd-mergepoint gdb cvs update \ -jowner_name-YYYYMMDD-branchpoint -jowner_name-yyyymmdd-mergepointSimilar sequences can be used to just merge in changes since the last merge.
For further information on CVS, see @uref{http://www.gnu.org/software/cvs/, Concurrent Versions System}.
Go to the first, previous, next, last section, table of contents.