Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Мини-HOWTO: RCS

версия 1.4, 14 августа 1997

В этом документе объясняется, как установить и использовать RCS (GNU Revision Control System), под Linux. В нем также затронуты темы установки утилит diff(1) и diff3(1), которые необходимы для работы RCS. This document may be reproduced freely, in whole or in part, provided that any usage of this document conforms to the general copyright notice of the HOWTO series of the Linux Documentation Project. See the file COPYRIGHT for details. Посылайте все предложения, добавления и сообщения об ошибках kiesling@terracom.net, чтобы я мог их включить в последующие версии.


1. Что такое RCS.

RCS - это Система Управления Исправлениями (revision control system), представляет собой пакет программ, которые отслеживают изменения в текстовых файлах и управляют разделенным доступом в ситуации с рабочими группами. Также они поддерживают исходные тексты модулей и отслеживают изменения в документах.

RCS была написана Walter F. Tichy и Paul Eggert. Последняя версия, которая перенесена под Linux, была RCS 5.7. Также существует полуофициальная версия. Большая часть информации в этом HOWTO взята из руководства по RCS.

RCS включает в себя следующие программы:rcs(1), которая управляет атрибутами архивного файла RCS; ci(1) и co(1), проверяющие старые и измененные архивы RCS; ident(1), которая производит поиск в архивах RCS по ключевому слову; rcsclean(1), программа которая удаляет нерабочие или неизмененные файлы; rcsdiff(1), которая запускает diff(1) для сравнения версий; rcsmerge(1),, которая объединяет результаты работы двух пользователей над файлом в один работающий файл; rlog(1),, которая выводит сообщения из журнала RCS.

Архивы, сделанные RCS, могут быть различного формата, и даже двоичными, если программа diff поддерживает 8-ми битный данные. Также у файла может быть включена строка идентификации для поиска при помощи ident(1). RCS использует утилиты diff(1) и diff<3> для формирования файлов изменений. Архив RCS состоит из начальной версии файла (версия 1.1) и файлов изменений для каждого изменения. Каждый раз файл сравнивается с предыдущей версией программой co(1), редактируется и записывается программой ci(1), номер версии каждый раз увеличивается, например, 1.2, 1.3, 1.4 при внесенных изменениях .

Сами архивы находятся в подкаталоге ./RCS

Для просмотра архивов прочтите руководство к rcsintro(1).


2. Требования к системе.

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

Эти утилиты (скомпилированные) можно взять на: ftp://sunsite.unc.edu/pub/Linux/utils/text/diffutils-2.6.bin.ELF.tar.gz или на зеркалах этого сайта. Если вам потребуется скомпилировать исходник diff(1), то он находится на: ftp://prep.ai.mit.edu/pub/gnu/diffutils-2.7.tar.gz или с зеркал этого сайта.

Если вы будете устанавливать скомпилированный diff(1), то понадобятся установленные библиотеки ELF. Для уточнения этого вопроса прочтите ELF-HOWTO.


3. Компиляция исходников RCS.

Скачайте дистрибутив RCS версии 5.7. Он находится по адресу ftp://sunsite.unc.edu/pub/Linux/devel/vc/rcs-5.7.src.tar.gz или на зеркалах этого сайта. После того, как вы разархивировали все в каталог исходных текстов, вам надо настроить RCS под свою систему. Это можно сделать, при помощи скрипта configure, находящегося в каталоге исходных текстов. Для этого надо его запустить. Он создаст Makefile и соответствующий вашей системе conf.sh. Затем вы можете набрать make install, который создаст программу. В принципе, это лучше сделать, как пользователь root, чтобы разместить все в нужные каталоги.


4. Создание и поддержка архивов.

Программа rcs(1) создает архивы и изменяет их атрибуты. Все опции rcs(1) описаны в руководстве rcs(1).

Самый простой способ создать архив - это сначала mkdir RCS в текущем каталоге, затем командой rcs -i название_рабочего_файла создать архив. Она создает архив под именем ./RCS/название_рабочего_файла,v и запрашивает описание архива, но не помещает туда сам архив. вы можете включить и выключить изменение архивов командами rcs -L название_рабочего_файла и rcs -U название_рабочего_файла соответственно. Есть и другие опции для управления доступом к архивам, указания формата и нумерации версий, о которых рассказано в руководстве к rcs(1).


5. ci(1) и co(1).

Команды ci(1) и co(1) используются для проверки старых и измененных файлов, при помощи сравнения их с архивом RCS. Команда ci(1) может быть использована для проверки всех архивов. В самой простой форме эти команды требуют только имя файла: ci название_рабочего_файла и co название_рабочего_файла Команда ci -l название_рабочего_файла проверяет новый файл, с включенной опцией изменения архивов, а co -l название_рабочего_файла выполняется автоматически. Это означает, что команда ci -l проверяет и старые файлы. ci -u название_рабочего_файла выполняет проверку нового и предыдущей версии, при выключенной опции изменения файлов. Во всех случаях пользователю предоставляется журнал изменений.

ci(1)также создает архив RCS, если он не был создан до этого.

Если вы не указываете номер изменения, ci(1) увеличивает номер версии на единицу, по отношению к предыдущему, и записывает измененный файл туда. Если вы сами указываете номер версии, то он не должен быть меньше, чем существующий. ci(1) также может произвести ветвление версии, если вы укажете несуществующую ветвь версии. Прочтите руководство к ci(1) и co(1) для выяснения деталей.

ci(1) и co(1) имеют несколько опций для интерактивного и пакетного режима использования.


6. Просмотр внесенных изменений.

Программа rlog(1) обеспечивает пользователя информацией об архиве и журналом изменений. Командой rlog work_file_name вы выведете названия версий файла, дату его создания и авторские userids. А также вы можете указать некоторые опции файла относящиеся к просмотру.


7. Включение информации для RCS в рабочие файлы.

co(1) поддерживает ключевые слова базы данных RCS, которая расширяется при проверке файла. Ключевое слово $Id$ в документе включает в себя имя файла, номер версии, дату проверки, автора, статус проверки и имя того, кто изменял права на внесение поправок в документ. Вместе с ключевым словом, $Log$ выдаст журнал изменений.

Эти ключевые слова могут использоваться, как идентификационный критерий при поиске в архиве RCS. Прочтите руководство к ident(1) для уточнения деталей.


8. RCS и контроль версий в emacs(1)

Функция контроля версии (Version Control) у emacs(1) является ярким примером использования RCS. Это в особенности относится к Версии 19.34 GNU Emacs, который поставляется с большинством дистрибутивов Linux. Когда вы редактируете файл, при помощи emacs(1), он регистрируется RCS, команда vc-toggle-read-only (по умолчанию C-x C-q ) проверит версию файла, а затем это сделает RCS. Emacs откроет буфер, в котором вы можете написать сообщение в журнал RCS. Для того, чтобы закрыть этот журнал и продолжить процесс проверки, есть команда C-c C-c.

Если на файле стоит опция запрещения редактирования RCS, вы можете ее снять, редактируя его в emacs(1). Вы можете проверить файл при помощи, Version Control командой % в режиме меню буфера.

Для уточнения деталей прочтите руководство к GNU Emacs.


9. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу