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).