A CVS használata

Ez a szakasz csak a cvs.php.net címen elérhető CVS szervert használó csomagokra vonatkozik.

Helyezzük el a $Id$ CVS kulcsszót minden fájlban. Ahogy az egyes fájlok szerkesztésre kerülnek, adjuk hozzájuk ezt a tag-et, ha még nem szerepelnek a fájlban (vagy cseréljük a létező formákat, mint például "Last Modified:" stb.)

Ezen szakasz további része alapvető ismereteket feltételez a CVS tag-ekről és branch-ekről.

CVS tags are used to label which revisions of the files in your package belong to a given release. Below is a list of the required and suggested CVS tags:

RELEASE_n_n_n
(kötelező) Used for tagging a release. If you don't use it, there's no way to go back and retrieve your package from the CVS server in the state it was in at the time of the release.
QA_n_n_n
(branch, opcionális) If you feel you need to roll out a release candidate before releasing, it's a good idea to make a branch for it so you can isolate the release and apply only those critical fixes before the actual release. Meanwhile, normal development may continue on the main trunk.
MAINT_n_n_n
(branch, opcionális) If you need to make "micro-releases" (for example 1.2.1 and so on after 1.2.0), you can use a branch for that too, if your main trunk is very active and you want only minor changes between your micro-releases.

Only the RELEASE tag is required, the rest are recommended for your convenience.

Below is an example of how to tag the 1.2.0 release of the Money_Fast package:

$ cd pear/Money_Fast
$ cvs tag RELEASE_1_2_0
T Fast.php
T README
T package.xml

By doing this you make it possible for the PEAR web site to take you through the rest of your release process.

Here's an example of how to create a QA branch:

$ cvs tag QA_2_0_0_BP
...
$ cvs rtag -b -r QA_2_0_0_BP QA_2_0_0
$ cvs update -r QA_2_0_0
$ cvs tag RELEASE_2_0_0RC1
...and then the actual release, from the same branch:
$ cvs tag RELEASE_2_0_0

The QA_2_0_0_BP tag is a "branch point " tag, which is the start point of the tag. It's always a good idea to start a CVS branch from such branch points. MAINT branches may use the RELEASE tag as their branch point.