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

       

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



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

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

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

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

$ ci -и filename

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

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


Для редактирования файла, находящегося под контролем 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, и соответствующие им команды (табл. АЛ).



Содержание раздела