Пока вы редактируете исходные тексты внутри вашей рабочей копии модуля вы в любой момент сможете определить состояние файлов посредством команд cvs status и cvs log. Однако, вскоре после того, как вы экспортируете файлы из вашего разработческого окружения и настроек, вы обнаружите, что стало труднее определить с какой версией модуля вы работаете.
Чтобы как-то помочь идентифицировать исходные тексты, CVS позволяет использовать механизм, который называется постановка ключевых слов. Строки вида $KEYWORD$ и $KEYWORD:...$ внутри файла будут заменены строками вида $KEYWORD:VALUE$, когда вы получаете новую версию файла.
Ниже привед©н список ключевых слов.
% $L o g: CVS_Key.tex,v $}Обратите внимание, в строке слово Log написано с разрядкой, чтобы CVS не пыталась подставить значение в данном месте. Каждая новая строка начинается с одной и той же последовательности, которой предшествует ключевое слово
SPMquot
Например, если файл содержит
% $Log: CVS_Key.tex,v $ % Revision 1.10 1999/05/18 09:29:41 shevel % Minor % % Revision 1.9 1999/05/18 09:07:21 shevel % MinorДополнительные строки, которые добавляются, когда подставляется значение, $Log будут начинаться со знака процента. В противоположность прежним версиям CVS и RCS "начало комментария" из файла RCS не используется. Ключевое слово $Log очень удобно, чтобы аккумулировать протокол изменений исходного текста. Однако, в некоторых случаях это может оказаться непростым.
Чтобы включить ключевое слово, вы просто включаете соответствующий текст. Например, вставляете строку $Id$ в ваш файл и выполняете команду commit. Система CVS автоматически выполнит соответствующую подстановку как часть выполнения commit.
Обычно, включив строку $Id$ в исходные файлы, вы получите в результате то, что подставленное значение будет попадать в сгенерированные файлы (готовые к исполнению двоичные коды). Например, если вам необходимо поддерживать исходные тексты компьютерных программ, то вы могли бы использовать какую-то переменную, которая содержала бы эту строку.
Команда ident, которая является частью системы RCS, можете быть
использована, чтобы извлечь ключевые слова и их значение из файла.
Это безусловно удобно для текстовых файлов, но ещ© важнее для двоичных
файлов.
$ ident samp.c samp.c: $Id: CVS_Key.tex,v 1.10 1999/05/18 09:29:41 shevel Exp $ $ gcc samp.c $ ident a.out a.out: $Id: CVS_Key.tex,v 1.10 1999/05/18 09:29:41 shevel Exp $
Существует другая система поддержки версий SCCS, которая имеет
команду what. Команда what очень похожа на команду ident
и используется для тех же целей. Во многих местах нет системы RCS,
но есть система SCCS. Поскольку what ищет символы
SPMquot
@(#)", то легко использовать ключевые слова, которые распознаются
обеими системами. Просто используйте ключевые слова RCS вместе с
"магическими" фразами SCCS, как, например, показано ниже:
static char *id="(#) $Id: ab.c,v 1.5 1993/10/19 14:57:32 ceder
Exp $";
Механизм подстановки ключевых слов не всегда удобен. Так, если вы желаете,
чтобы в тексте появилась строка литерально совпадающая с
$A u th o r$, без того чтобы CVS заменила е© на что-то
вроде
SPMquot
Author: shevel". К сожалению нет возможности селективно
отключить
часть подстановок. Вы можете отключить только все подстановки сразу,
используя параметр -ko.
Во многих случаях вы можете избежать использования ключевого слова
в исходном тексте, даже если оно должно появиться в финальном
варианте текста.
Например, исходный вид ключевого слова $Author$ в данном тексте
таков
SPMquot
$Author$".
Для каждого файла имеется умалчиваемый режим подстановки. То же самое верно и для копии файла в рабочем каталоге. Первое устанавливается посредством параметра -k в командах cvs add и cvs admin. Последняя устанавливается посредством параметров -k или -A в командах cvs checkout или cvs update. Команда cvs diff также имеет команду -k.
Имеются следующие режимы подстановки:
SPMquot
Revision: 1.10" для ключевого слова Revision.
SPMquot
Revision: 1.10". Эта возможность полезна, когда необходимо
сравнить две версии одного файла, поскольку это позволит исключить влияние
различия в значениях ключевых слов.
SPMquot
Revision: 1.10", т.к. будет использовано значеное при
котором файл был помещ©н в хранилище.
Следует помнить, что этот параметр не может быть корректно использован при экспорте двоичных файлов.
Ключевое слово $Log$ является до некоторой степени противоречивым.
Информация об истории изменения вашего файла всегда доступна, даже если вы
не используете ключегого слова $Log$ - достаточно использовать
команду
cvs log.
Более серь©зная проблема с данным ключевым словом состоит в том, что CVS не слишком успешно может управляться со значениями этого ключевого слова, например, когда вы пытаетесь объединить боковую ветвь и основной ствол разработки. Частым результатом могут оказаться сообщения о конфликтах.
Чтобы избежать проблем, лучше воздержаться от использования ключевого слова $Log$, елси это не является абсолютно необходимым.