$ 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.
$ rlog important.с
RCS file: important.c,v
Working file: important.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
This is an important demonstration file
------------------------
revision 1.2
date: 2007/07/09 06:57:33; author: neil; state: Exp; lines: +1 -0
Added an extra line to be printed out.
------------------------
revision 1.1
date: 2007/07/09 06:54:36; author: neil; state: Exp;
Initial revision
==================================================================
$
В первой части дается описание файла и опций, используемых командой rcs. Далее команда rlogперечисляет версии файла, начиная с самой свежей, вместе с текстом, который вы вводите при сохранении версии. lines:+1-0в версии 1.2 информирует вас о том, что была вставлена одна строка и ни одна строка не была удалена.
Примечание
Учтите, что время модификации файла записывается без учета летнего времени, чтобы избежать проблем при переводе часов.
Теперь, если вы хотите вернуть первую версию файла, можно запросить команду со, указав нужную версию.
$ со -r1.1 important.c
important.с,v --> important.c
revision 1.1
done
$
У команды ciтоже есть опция -r, которая присваивает номеру версии заданное значение. Например, команда
ci -r2 important.c
сохранит файл important.c как версию 2.1. Обе системы, RCS и SCCS, по умолчанию используют 1 как наименьший номер версии.
Команда rcsdiff
Если вы хотите знать, чем отличаются две версии, можно применить команду rcsdiff:
$ rcsdiff -r1.1 -r1.2 important.c
=================================================
RCS file: important.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -r1.1 -r1.2
11a12
> printf("This is an extra line added later\n");
$
Вывод информирует вас о том, что была добавлена одна строка после исходной строки 11.
Читать дальше