В первой части дается описание файла и опций, используемых командой
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.
Обозначение версий
Система RCS может применять специальные строки (макросы) внутри исходного файла, помогающие отслеживать изменения. Наиболее популярны два макроса:
$RCSfile$
и
$Id$
. Макрос
$RCSfile$
замещается именем файла, а макрос
$Id$
— строкой, обозначающей версию. Полный список поддерживаемых специальных строк можно найти в интерактивном руководстве. Макросы замещаются, когда версия файла извлекается из RCS-файла, и обновляются автоматически, когда версия регистрируется и сохраняется в RCS-файле.
Давайте в третий раз изменим файл и добавим несколько таких макросов:
$ со -l important.с
important.c,v --> important.с
revision 1.2 (locked)
done
$
Отредактируйте файл в соответствии с приведенным далее кодом:
#include <stdlib.h>
#include <stdio.h>
/*
Это важный файл для управления данным проектом.
В нем реализована каноническая программа "Hello World".
Filename: $RCSfile$
*/
static char *RCSinfo = "$Id$";
int main {
printf ("Hello World\n");
printf("This is an extra line added later\n");
printf("This file is under RCS control. Its ID is\n%s\n", RCSinfo);