Perl для системного администрирования

         

Пятиминутное руководство по RCS



Пятиминутное руководство по RCS

Ссылки на подробную информацию

Это короткое руководство научит вас всему, что нужно знать о применении системы контроля версий (Revision Control System, RCS) для системного администрирования. Если вы собираетесь серьезно использовать RCS, то обязательно загляните в страницы руководств и источники информации, ссылки на которые приведены в конце приложения, поскольку здесь рассматривается лишь минимум возможностей.

RCS-функции сродни агентству по найму автомобилей. Только один человек может арендовать конкретную машину в настоящий момент времени. Новую машину можно арендовать только после того, как агентство добавит ее в свой парк. Покупатели могут просматривать список машин (и их возможностей) в любое время, но если два человека хотят арендовать одну и ту же машину, второй должен подождать, пока машина будет возвращена в агентство. Наконец, агенты по найму
тщательно изучают каждую машину после того, как она возвращается в фирму, и записывают все изменения, произошедшие с ней за то время, пока она была арендована. Все это справедливо и для RCS.

В RCS файл- как машина. Для того чтобы следить за файлом, используя RCS (т. е. добавить его к арендуемым машинам), необходимо сначала включить его (check in) в репозиторий:

$ ci -и filename

Команда ci - это сокращение от «check in», а ключ -и указывает на то, что файл необходимо оставить там, где он находится на время добавления. Когда файл добавлен (т. е. доступен для аренды), RCS делает одно из двух, чтобы напомнить пользователю о том, что файл находится под контролем RCS:

Удаляет первоначальный файл, оставляя только файл в архиве RCS. Обычно этот файл носит название filename,v и хранится либо в том же каталоге, что и оригинальный файл, либо в подкаталоге
RCS (если пользователь создает его). Если задан ключ -и, как в рассмотренном выше случае, файл возвращается обратно в рабочий каталог и доступен только для чтения.

Для редактирования файла, находящегося под контролем RCS (иными словами, взять машину в аренду), необходимо сначала извлечь его (check-out) из репозитория:

$ со -1 filename

Ключ -1 указывает RCS «жестко блокировать» (to «strictly lock») файл (т. е. другие пользователи не могут в это время извлечь его из репозитория). С командой со используются также ключи:

- r<reuision number>: для извлечения более старых версий файла. - р: для вывода последней версии на экран, при этом извлечения файла не происходит.

После того как работа с файлом закончена, его необходимо вернуть обратно в репозиторий посредством той же команды, что и ранее, когда он помещался в репозиторий первый раз (ci -и filename). При помещении файла в репозиторий все внесенные в него изменения сохраняют-
ся эффективным с точки зрения расходования пространства способом.

Каждый раз, когда измененный файл помещается в репозиторий, ему присваивается новый номер «ревизии». Направляя файл в репозиторий, RCS запрашивает у пользователя комментарий, который записывается в журнал изменений, автоматически поддерживаемый для каждого файла. С помощью команды rlog filename можно просмотреть этот журнал, а также узнать, кто в настоящее время работает с извлеченным файлом.

Если кто-то не поместит измененный файл обратно в RCS (например, уйдет домой, а у вас возникнет реальная необходимость внести изменения в данный файл), вы можете снять блокировку при помощи rcs-u filename. Эта команда запросит у вас сообщение, которое отошлет тому, кто устанавливал блокировку.

После снятия блокировки необходимо проверить, чем текущая версия отличается от того, что хранится в RCS. Эту информацию предоставляет команда rcsdiff filename. Для того чтобы сохранить эти изменения, поместите файл в репозиторий (с соответствующим комментарием), а затем извлеките его еще раз и только потом начинайте с ним работать, rcsdiff, как и упомянутая выше со, может принимать ключ —r<revision number> для сравнения двух предыдущих версий.

Обратите внимание на некоторые операции, выполняемые в RCS, и соответствующие им команды (табл. АЛ).



Ссылки на подробную информацию



Ссылки на подробную информацию

ftp://ftp.gnu.org/pub/gnu/rcs -

здесь можно найти самый последний исходный код пакета RCS.

«Applying RCS and SCCS: From Source Control to Project Control»,

Dor, Bolinger, Tan Bronson (O'Reilly, 1995).

http://www.sourcegear.com/CVS-

сюда стоит обратиться, если вам нужны возможности, которых нет в RCS. Очень распространенная система CVS (Concurrent Version System) - это следующий шаг наверх. А это его основной сайт.

А 1 Распространенные операции в RCS



Таблица А. 1. Распространенные операции в RCS

Операция Команда
Первое помещение файла в репозиторий (файл ос-
тается активным в файловой системе)
ci и filename
Извлечение с блокировкой
Помещение файла и снятие блокировки (файл
остается активным в файловой системе)
со -1 filename
ci -и filename
Вывести версию х.у файла со -рх.у filename.
Вернуться к версии х.у (перезаписывает активный
файл файлом указанной версии)
со -rx.y filename
Сравнение активного файла и последней версии rcsdiff filename
Сравнение версий х.у и x.z rcsdiff -rx.y -rx.z filename
Просмотр журнала rlog filename-
Снятие блокировки с файла, установленной другим пользователем res -u filename

Хотите верьте, хотите нет, но это все, что вам нужно, чтобы начать работать с RCS. Как только вы начнете использовать RCS в системном администрировании, вы поймете, что это щедро окупается.