Использование CVS
Эта часть касается только пакетов, использующих CVS на cvs.php.net.
Включайте ключевое слово CVS - $Id$ в каждый файл. Добавьте эту метку в каждый файл, если там ее еще нет или исправьте уже существующую запись "Last Modified:" и т.п.).
В оставшейся части этой главы предполагается, что вы имеете представление о тэгах CVS и ветках (branches).
Тэги CVS предназначены для того, чтобы пометить файлы, которые принадлежат к конкретному релизу. Ниже приводится список необходимых и рекомендуемых тэгов:
- RELEASE_n_n
- (обязательный) Используется для пометки релиза. Если вы не используете его, то вы не сможете вернуться назад и затребовать пакет в том виде, в котором он находился во время прошлого релиза.
- QA_n_n
- (необязательный) Если вы чувствуете, что перед выпуском релиза необходимо выпустить предварительную версию (release candidat), то вы можете сделать ветку (branch) кода для того, чтобы изолировать релиз и вносить только критически важные изменения до релиза. При этом, обычный процесс разработки может продолжаться в основном дереве кода.
- MAINT_n_n
- (необязательный) Если вам нужно сделать "микро-релиз" (например, версию 1.2.1 и т.п. после 1.2), вы так же можете использовать ветку в том случае, если основной код меняется достаточно активно и вы хотите вносить только небольшие изменения в микро-релизы.
Обязательным является только тэг RELEASE, остальные рекомендуются для вашего же удобства.
Пример того, как пометить тэгом релиза 1.2 пакет "Money_Fast":
$
cd pear/Money_Fast$
cvs tag RELEASE_1_2 T Fast.php T README T package.xml
Сделав так, вы получаете возможность использовать веб-сайт PEAR для дальнейшего процесса выпуска релизов.
Пример создания ветки для QA:
$
cvs tag QA_2_0_BP ...$
cvs rtag -b -r QA_2_0_BP QA_2_0$
cvs update -r QA_2_0$
cvs tag RELEASE_2_0RC1 ...далее, создаем настоящий релиз из то же ветки:$
cvs tag RELEASE_2_0
Тэг "QA_2_0_BP" - это тэг ветки. Рекомендуется всегда выделять ветки этим тэгом. Служебные ветви (MAINT branches) могут быть отмечены как релиз и без использования этого тэга.