Основы программирования в Linux
$ <b>со -l important.c</b>important.с,v --> important.crevision 1.1 (locked) done$и загляните в каталог:
$ <b>ls -l</b>-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$Теперь у вас появился файл для редактирования и внесения новых изменений. Выполните корректировку, сохраните новую версию и используйте команду
еще раз для сохранения изменений. Секция вывода в файле important.c теперь следующая:ciprintf("Hello World\n");printf("This is an extra line added later\n");Примените
следующим образом:ci$ <b>ci important.с</b>important.с,v <-- important.cnew revision: 1.2;previous revision: 1.1enter log message, terminated with single or end of file:>> <b>Added an extra line to be printed out.</b>>> <b>.</b>done$ПримечаниеДля записи изменений и сохранения блокировки, разрешающей пользователю продолжить работу с файлом, следует вызвать команду
с опциейci. Файл будет автоматически снова извлечен в каталог для того же самого пользователя.-lВы сохранили обновленную версию файла. Если сейчас заглянуть в каталог, можно увидеть, что файл important.c снова удален.
$ <b>ls -l</b>-r--r--r-- 1 neil users 635 2007-07-09 07:55 important.с,v$Команда rlogЧасто бывает полезно просмотреть сводку изменений, внесенных в файл. Сделать это можно с помощью команды
.rlog$ <b>rlog important.с</b>RCS file: important.c,vWorking file: important.chead: 1.2branch:locks: strictaccess list:symbolic names:keyword substitution: kvtotal revisions: 2; selected revisions: 2description:This is an important demonstration file------------------------revision 1.2date: 2007/07/09 06:57:33; author: neil; state: Exp; lines: +1 -0Added an extra line to be printed out.------------------------revision 1.1date: 2007/07/09 06:54:36; author: neil; state: Exp;Initial revision==================================================================$В первой части дается описание файла и опций, используемых командой
. Далее командаrcsперечисляет версии файла, начиная с самой свежей, вместе с текстом, который вы вводите при сохранении версии.rlogв версии 1.2 информирует вас о том, что была вставлена одна строка и ни одна строка не была удалена.lines:+1-0ПримечаниеУчтите, что время модификации файла записывается без учета летнего времени, чтобы избежать проблем при переводе часов.
Теперь, если вы хотите вернуть первую версию файла, можно запросить команду
, указав нужную версию.со$ <b>со -r1.1 important.c</b>important.с,v --> important.crevision 1.1done$У команды
тоже есть опцияci, которая присваивает номеру версии заданное значение. Например, команда-rci -r2 important.cсохранит файл important.c как версию 2.1. Обе системы, RCS и SCCS, по умолчанию используют 1 как наименьший номер версии.
Команда rcsdiffЕсли вы хотите знать, чем отличаются две версии, можно применить команду
:rcsdiff$ <b>rcsdiff -r1.1 -r1.2 important.c</b>=================================================RCS file: important.c,vretrieving revision 1.1retrieving revision 1.2diff -r1.1 -r1.211a12> printf("This is an extra line added later\n");$Вывод информирует вас о том, что была добавлена одна строка после исходной строки 11.
Обозначение версийСистема RCS может применять специальные строки (макросы) внутри исходного файла, помогающие отслеживать изменения. Наиболее популярны два макроса:
и$RCSfile$. Макрос$Id$замещается именем файла, а макрос$RCSfile$— строкой, обозначающей версию. Полный список поддерживаемых специальных строк можно найти в интерактивном руководстве. Макросы замещаются, когда версия файла извлекается из RCS-файла, и обновляются автоматически, когда версия регистрируется и сохраняется в RCS-файле.$Id$Давайте в третий раз изменим файл и добавим несколько таких макросов:
$ <b>со -l important.с</b>important.c,v --> important.сrevision 1.2 (locked)