Пятиминутное руководство по 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 в системном администрировании, вы поймете, что это щедро окупается.