18.2. Построение локального репозитария RCS

Проблема
Вы боитесь, что когда-нибудь отредактируете какой-нибудь файл, в системе что нибудь сломается, а вы не будете помнить, как отменить изменения. Таким образом,
вы хотите создать простой, локальный репозитарий для отслеживания изменений
в программах, конфигурационных файлах, сценариях и других документах для
одного пользователя. Доступ к сети или многопользовательская поддержка не
обязательны — нужна простая система для вашего личного пользования.
Решение
Установите RCS (Revision Control System) из пакетов RPM, .deb или исходных
текстов, а затем создайте собственный репозитарий RCS.
Сначала создайте рабочий каталог, затем подкаталог RCS:
$ mkdir projecthome
$ cd projecthome
$ mkdir RCS
Убедитесь в том, что в рабочем каталоге (projecthome) имеются файлы для эк спериментов. Занесение файла в репозитарий выполняется следующей командой:
terri@workstationl:~7projecthome$ ci -u cupsd.conf
RCS/cupsd.conf,v <-

• cupsd.conf
enter description, terminated with single '.'or end of file:
NOT: This is NOT a log message!
» LAN printer server, for windows and linux. no samba
»


initial revision: 1.1
done
Чтобы отредактировать файл, извлеките его из репозитария и откройте в сво ем любимом текстовом редакторе:
terri@workstationl:~7projecthome$ со -1 cupsd.conf
RCS/cupsd.conf,v

•-> cupsd.conf
revision 1.1 (locked)
done
terri@workstationl:~7projecthome$ kate cupsd.conf &
После завершения редактирования сохраните и закройте файл, а затем зане сите его в репозитарий так, как показано выше. Добавьте в журнал комментарий
с описанием изменений:
$ ci -u cupsd.conf
RCS/cupsd.conf.v <

• cupsd.conf
new revision: 1.2; previous revision: 1.1
enter log message, terminated with single '.'or end of file:
» added administrative controls to prevent users from making changes to the server
done


Комментарий
В простой системе управления версиями используются два каталога: в рабочем
каталоге хранятся рабочие копии документов, а каталог RCS выполняет функции
репозитария. Файлы в репозитарий снабжаются суффиксом ,v:
$ Is RCS
cupsd.conf.v
В файле хранится информация о различных версиях отслеживаемого файла:
$ less cupsd.conf.v
head 1.3:
access:
symbols;
locks: strict;
comment # fc
date 2004.06.15.03.33.46; author terri; state Exp:
branches;
next 1.2;
1.2
date 2004.06.13.30.47; author terri: state Exp:
branches:
next 1.1;
1.1
date 2004.06.12.03.27.01: author terri; state Exp;
branches;
next
desc
PLAN printer server, for windows and linux, no samba
Помните, что файлы в рабочем каталоге представляют временные версии. Когда
файл достигнет состояния, которое бы вы хотели зафиксировать, занесите его в ре позитарий.
Основные команды RCS:
О ci -u — занести файл в репозитарий и снять блокировку;
О со -L — извлечь файл из репозитария и заблокировать.
Флаг -и при занесении файла в репозитарий защищает копию в рабочем ката логе. Файл в рабочем каталоге становится доступным только для чтения, что пре дотвращает случайные изменения и напоминает, что для редактирования файл
необходимо извлечь из репозитария.
Установление блокировки означает, что файл в любой момент времени может
быть извлечен и отредактирован только одним человеком, поэтому RCS не под ходит для проектов с большим количеством участников. Тем не менее система
отлично подходит для малых проектов и отдельных пользователей и к тому же
легко осваивается.
См. также
rcsintro(l), ci(l), co(l); домашняя страница RCS (http://www.cs.purdue.edu/homes/
trinkle/RCS).