Меню:


Работа с системой контроля версий Darcs обеспечивается несколькими пакетами, которые несколько отличаются друг от друга по функциональности. Пакет darcsum, который вы можете загрузить со страницы автора, реализует интерфейс к командам darcs, и отражает идеологию этой системы. Кроме этого, существует модуль поддержки Darcs для пакета VC, о котором вы можете прочитать в разделе Работа с VC. Также ведется разработка модуля для пакета dvc, который описан в разделе Работа с DVC.

Пакет darcsum имеет больше возможностей чем пакет darcs, и поэтому в дальнейшем наш рассказ будет вестись о нем. Пакет предоставляет пользователю для работы интерфейс, во многом сходный с уже привычным интерфейсом пакета PCL-CVS. Имеются только некоторые отличия, обусловленные самой архитектурой системы Darcs.

Установка пакета

Установка пакета не отличается от установки других пакетов для Emacs — вам лишь необходимо загрузить с сайта последнюю версию пакета, поместить ее туда, где ее найдет Emacs, и прописать загрузку пакета в вашем файле инициализации, например, с помощью такой вот команды:

(require 'darcsum)

Использование пакета 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

blog comments powered by Disqus