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 включают:

При занесении файла в репозиторий он становится доступен только для чтения, что защищает его от случайных изменений. Для редактирования файл сначала нужно извлечь с помощью co, что помогает избежать одновременного редактирования несколькими пользователями. RCS подходит для небольших проектов и личных репозиториев, поскольку система легко осваивается и обеспечивает простое управление версиями.

См. также

rcsintro(1), ci(1), co(1); домашняя страница RCS (http://www.cs.purdue.edu/homes/trinkle/RCS).