Работа с системой контроля версий Darcs обеспечивается несколькими пакетами, которые несколько отличаются друг от друга по функциональности. Пакет darcsum, который вы можете загрузить со страницы автора, реализует интерфейс к командам darcs, и отражает идеологию этой системы. Кроме этого, существует модуль поддержки Darcs для пакета VC, о котором вы можете прочитать в разделе Работа с VC. Также ведется разработка модуля для пакета dvc, который описан в разделе Работа с DVC.
Пакет darcsum имеет больше возможностей чем пакет darcs, и поэтому в дальнейшем наш рассказ будет вестись о нем. Пакет предоставляет пользователю для работы интерфейс, во многом сходный с уже привычным интерфейсом пакета PCL-CVS. Имеются только некоторые отличия, обусловленные самой архитектурой системы Darcs.
Установка пакета не отличается от установки других пакетов для Emacs — вам лишь необходимо загрузить с сайта последнюю версию пакета, поместить ее туда, где ее найдет Emacs, и прописать загрузку пакета в вашем файле инициализации, например, с помощью такой вот команды:
(require 'darcsum)
Вся работа с пакетом происходит в буфере *darcs*, который создается командой M-x
darcsum-whatsnew. Пример окна создаваемого этой командой вы можете видеть на рисунке
ниже. Многие команды, доступные в данном буфере, совпадают по действию с командами пакета
PCL-CVS. Команды могут выполняться над текущими изменениями, или над отмеченными1.
Пометка и ее снятие производится с помощью клавиши m, которая выполняет команду
darcsum-toggle-mark. Перемещение между файлами и изменениями в буфере производится с
помощью команд darcsum-next-line (клавиша n), и darcsum-previous-line (клавиша p), или с
помощью клавиш управления курсором.
Работа с изменениями производится по следующему сценарию: после получения списка
измененных файлов, вам нужно отобразить конкретные изменения внесенные в файлы, выбрать
нужные изменения, и затем выполнять над ними необходимые команды. Отображение изменений
внесенных в файл производится с помощью команды darcsum-toggle, которая привязана к
клавише RET.
Выбранные изменения могут быть сохранены с помощью команды darcsum-record (клавиши c или
R), после выполнения которой появится буфер в котором пользователь может ввести имя для
данного изменения (первая строка буфера) и длинное описание данного изменения (следующие
за первой строки). После ввода описания, с помощью сочетания клавиш C-c C-c, изменения
будут сохранены.
Изменения могут быть удалены из буфера *darcs* с помощью команды darcsum-remove (клавиша
r), или перемещены в другой буфер darcsum, с помощью команды darcsum-move (клавиша M).
Откат к предыдущей версии данных производится с помощью команды darcsum-revert, которая
привязана к клавише U.
Для более удобного просмотра изменений, пакет darcsum определяет набор команд, которые
позволяют просмотреть результат выполнения команды diff (или ее аналогов) — команда
darcsum-diff (клавиша =), просмотреть изменения с помощью пакета Ediff —
команда darcsum-ediff (клавиша e), или даже выполнить трехстороннее слияние изменений с
помощью команды darcsum-ediff-merge (клавиша E).
Чтобы обновить содержимое буфера, используется команда darcsum-redo, которая заново
выполняет команду darcs whatsnew. Для окончания работы с изменениями, используется
команда darcsum-quit, которая привязана к клавише q.
Настройка пакета производится с помощью стандартных возможностей Emacs. Просто выполните
команду M-x customize-group darcsum, и перед вами появится окно настройки. Вы можете
задать имя для исполняемого файла darcs, а также изменить начертания шрифтов, которыми
отображаются данные в буфере *darcs*.
Кроме настройки переменных и параметров начертаний, пакет предоставляет хук
darcsum-mode-hook, в который вы можете поместить нужные вам команды, которые будут
выполнены после выполнения хуков для режима text, от которого унаследован darcsum-mode.
1. Darcs позволяет работать не только с измененными файлами, но и с отдельными изменениями в этих файлах.
Last change: 05.03.2013 16:54