Работа с системой контроля версий 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