Система управления версиями RCS пригодилась для сохранения резервных копий
файлов конфигурации и нескольких Perl модулей, активная разработка которых уже завершена,
но мелкие исправления и переделки еще бывают.
Итак, для работы с RCS используются следующие команды -
ci (импорт файлов в репозиторий),
co (экспорт),
rcs (манипулирование флагами файлов и проч.),
rcsdiff,
rlog.
Пусть file - файл, который требуется передать в управление RCS.
ls -la > file
Первым делом нужно создать каталог для репозитория
mkdir RCS
Затем импортировать файл. В общем случае это делается так:
ci file
Исходный файл _перемещается_ в репозиторий (если он там уже есть, то под новой версией).
Извлечь файл из репозитория можно командой:
co file
(файл будет иметь права доступа 444)
Чтобы изменить файл, нужно установить его блокировку и установить права доступа, разрешающие запись
rcs -l file
chmod o+w file
Чтобы записать изменения нужно снова выполнить
ci file
Итак, это все, что нужно для того чтобы начать работать.
Теперь пара команд, для того, чтобы работать было удобно :)
co -l file - синоним co file; rcs -l file; chmod 644 file - извлечь, заблокировать файл, разрешить запись.
ci -u file - синоним ci file; co file - сохранить файл и извлечь рабочую копию
ci -l file - синоним ci file; co -l file - сохранить файл, сделать co -l
В случае, если с файлом работает один пользователь, то в блокировках нет
никакого смысла, и от них можно отказаться:
ci -l file (первоначальный импорт)
rcs -U file (установка перманентной блокировки)
vi file
ci -l file (файл сохранится в RCS и будет готов к дальнейшей работе)
Далее, самые распространненые задачи:
Извлечь файл из репозитория
co file
co -l file (синоним co file, rsc -l file -- извлечение и блокировка)
co -r1.2 file (извлечение определенной версии файла)
Посмотреть различия между текущей (=рабочей) версией и последней, сохраненной в RCS
rcsdiff file
Посмотреть различия между произвольными двумя версиями
rcsdiff -r1.1 -r1.2 file
Посмотреть логи редактирования файла
rlog file
Дальнейшее чтение: rcsintro(1), rcs(1), co(1), ci(1).
|