Первая задача — инициализировать RCS-контроль над файлом с помощью команды rcs. Команда rcs -i инициализирует файл RCS-управления.
$ rcs -i important.с
RCS file: important.с,v
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> This is an important demonstration file
>> .
done
$
Разрешается применять множественные строки комментариев. Завершите строку приглашения одиночной точкой (.) в самой строке или набрав символ конца файла, обычно комбинацией клавиш
После этой команды rcs создается новый предназначенный только для чтения (read-only) файл с расширением v.
$ ls -l
-rw-r--r-- 1 neil users 225 2007-07-09 07:52 important.c
-r--r--r-- 1 neil users 105 2007-07-09 07:52 important.с,v
$
Если вы предпочитаете сохранять RCS-файлы в отдельном каталоге, просто создайте подкаталог с именем RCS перед первым применением команды rcs. Все команды rcs будут автоматически использовать подкаталог RCS для RCS-файлов.
Теперь вы можете выполнить регистрируемый ввод в RCS-файл (check-in) вашего файла с помощью команды ci для сохранения его текущей версии.
$ ci important.с
important.c,v <-- important.c
initial revision: 1.1
done
$
Если вы забыли выполнить первой команду rcs -i, RCS запросит описание файла. Если теперь заглянуть в каталог, то можно увидеть, что файл important.c удален.
$ ls -l
-r--r--r-- 1 neil users 443 2007-07-07 07:54 important.с,v
$
Содержимое файла и управляющая информация хранятся в RCS-файле important.c,v.
Если вы хотите изменить файл, прежде всего его надо извлечь (check out). Если нужно просто прочитать файл, можно применить команду со для повторного создания текущей версии файла и изменения ее прав доступа на read-only (только чтение). Если же файл нужно редактировать, следуетсо -l. Причина заключается в том, что в командных проектах важно быть уверенным в том, что в определенный момент времени только один человек корректирует данный файл. Вот почему только у одной копии данной версии файла есть право на запись. Когда файл извлечен в каталог с правом на запись, RCS-файл блокируется. Заблокируйте копию файла
$ со -l important.c
important.с,v --> important.c
revision 1.1 (locked) done
$
и загляните в каталог:
$ ls -l
-rw-r--r-- 1 neil users 225 2007-07-09 07:55 important.c
-r--r--r-- 1 neil users 453 2007-07-09 07:55 important.с,v
$
Теперь у вас появился файл для редактирования и внесения новых изменений. Выполните корректировку, сохраните новую версию и используйте команду ci еще раз для сохранения изменений. Секция вывода в файле important.c теперь следующая:
printf("Hello World\n");
printf("This is an extra line added later\n");
Примените ci следующим образом:
$ ci important.с
important.с,v <-- important.c
new revision: 1.2;
previous revision: 1.1
enter log message, terminated with single or end of file:
>> Added an extra line to be printed out.
>> .
done
$
Для записи изменений и сохранения блокировки, разрешающей пользователю продолжить работу с файлом, следует вызвать команду ci с опцией -l. Файл будет автоматически снова извлечен в каталог для того же самого пользователя.
Вы сохранили обновленную версию файла. Если сейчас заглянуть в каталог, можно увидеть, что файл important.c снова удален.
$ ls -l
-r--r--r-- 1 neil users 635 2007-07-09 07:55 important.с,v
$
Часто бывает полезно просмотреть сводку изменений, внесенных в файл. Сделать это можно с помощью команды rlog.
$ rlog important.с
RCS file: important.c,v
Working file: important.c