18.3. Выборка старых версий файлов в RCS

Проблема

Беда всё-таки произошла: вы изменили рецепт секретного соуса, ошиблись и не можете восстановить его в исходном виде. Но вы использовали RCS, и в репозитории хранится несколько версий файла. Требуется вывести список всех версий, протокол изменений и даты последней модификации. Определив, какая версия вам нужна, извлеките старую версию из репозитория.

Решение

В репозитории накопилось несколько версий файла. Чтобы просмотреть весь протокол изменений по конкретному файлу, воспользуйтесь командой rlog:

$ rlog cupsd.conf
RCS file: RCS/cupsd.conf,v
Working file: cupsd.conf
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revision: 2; selected revisions: 2
description:
LAN printer server, for Windows and Linux. No Samba

revision 1.3
date: 2004/07/31 03:33:46; author: terri; state: Exp; lines: +1 -1
corrected error in Allow directive

revision 1.2
date: 2004/07/27 05:29:27; author: terri; state: Exp; lines: +2 -0
added administrative controls to prevent users from making changes to the server

revision 1.1
date: 2004/07/27 05:19:25; author: terri; state: Exp;
Initial revision

Вероятно, вы уже поняли, почему так важно писать содержательные комментарии. Для извлечения конкретной версии документа следует указать её номер:

$ co -r1.1 cupsd.conf

ВНИМАНИЕ

Извлечение файла из репозитория приводит к стиранию рабочей копии файла (например, projecthome/cupsd.conf в данном случае). Чтобы этого не произошло, начните с занесения рабочей копии в репозитории RCS.

Чтобы быстро просмотреть файл без его извлечения и открытия в редакторе, используйте ключ -p:

$ co -p -r1.5 cupsd.conf

Комментарий

Если в репозитории содержится несколько версий файла и при извлечении не указан номер версии, по умолчанию будет извлечена самая последняя версия.

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

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

См. также

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