18.2. Построение локального репозитория RCS
Проблема
Вы опасаетесь, что при редактировании важного файла можете вызвать проблемы в системе, и затем забыть, как отменить изменения. Поэтому требуется простой локальный репозиторий для отслеживания изменений в файлах и документах, предназначенный для одного пользователя. Сеть или многопользовательская поддержка не обязательны — нужна простая система управления версиями для личного использования.
Решение
Установите RCS (Revision Control System) из пакетов RPM, .deb или исходных текстов, а затем создайте собственный репозиторий RCS. Начните с создания рабочего каталога и подкаталога RCS:
$ mkdir projecthome
$ cd projecthome
$ mkdir RCS
В рабочем каталоге (projecthome) должны быть файлы для экспериментов. Занесение файла в репозиторий осуществляется следующей командой:
terri@workstation:~/projecthome$ ci -u cupsd.conf
RCS/cupsd.conf,v <- cupsd.conf
enter description, terminated with single '.' or end of file:
NOTE: This is NOT a log message!
> LAN printer server for Windows and Linux. No Samba
> .
initial revision: 1.1
done
Для редактирования файла извлеките его из репозитория и откройте в редакторе:
terri@workstation:~/projecthome$ co -l cupsd.conf
RCS/cupsd.conf,v -> cupsd.conf
revision 1.1 (locked)
done
terri@workstation:~/projecthome$ 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 используется два каталога: рабочий каталог хранит текущие версии файлов, а каталог RCS выполняет функции репозитория. Версии файлов помечаются суффиксом .v. Команды RCS позволяют легко контролировать версии документов:
$ ls RCS
cupsd.conf,v
Файл cupsd.conf,v
содержит данные обо всех изменениях. Посмотреть историю версий можно с помощью команды:
$ less RCS/cupsd.conf,v
head 1.3;
access;
symbols;
locks: strict;
comment # fc;
date 2024.06.15.03.33.46; author terri; state Exp;
branches;
next 1.2;
...
Команды RCS включают:
ci -u
— занести файл в репозиторий и снять блокировку;co -l
— извлечь файл из репозитория и заблокировать.
При занесении файла в репозиторий он становится доступен только для чтения, что защищает его от случайных изменений. Для редактирования файл сначала нужно извлечь с помощью co
, что помогает избежать одновременного редактирования несколькими пользователями. RCS подходит для небольших проектов и личных репозиториев, поскольку система легко осваивается и обеспечивает простое управление версиями.
См. также
rcsintro(1), ci(1), co(1); домашняя страница RCS (http://www.cs.purdue.edu/homes/trinkle/RCS).