Пакет Xtla значительно расширяет возможности интеграции Emacs с системой контроля версий GNU Arch (он же tla и/или с Bazaar)1. Данный пакет, в отличии от модуля vc-arch, предоставляет пользователю полный спектр команд для работы с репозиториями GNU Arch. К основным возможностям пакета относятся:
Пакет Xtla в своей работе использует программу tla
или baz
, так что она должна быть
установлена в вашей системе. На момент написания данной статьи была выпущена версия 1.2
пакета Xtla так что в статье будут описаны ее возможности.
Для работы с пакетом необходимо наличие нескольких пакетов: ewoc.el, который необходим для
работы всего пакета Xtla (он поставляется вместе с Xtla, и находится в каталоге contrib
),
tree-widget.el, который нужен для работы команды tla-browse
, и пакет smerge-mode, который
не является совсем необходимым, но может быть полезен при разрешении конфликтов.
Скачать пакет можно со страницы проекта. Настройка пакета для установки выполняется с
помощью стандартного скрипта configure
. Если все прошло нормально, то после установки и
перезапуска Emacs, часть функций пакета будет помечена как авто-загружаемая и вы можете
использовать их не используя явных команд загрузки. Однако, вы можете загрузить пакет
явно, например так:
(require 'xtla-autoloads)
Команды пакета имеют префиксы tla-
и xtla
и доступны через предопределенные ключи
(сочетания клавиш), для которых используется префикс C-x T
. Кроме явного вызова команд
через M-x, и использования сочетаний клавиш, Xtla добавляет несколько пунктов в меню
Tools
, а также создает отдельные меню с именем Tla-...
, при работе в режимах, специфичных
для работы с GNU Arch.
В целом, работу с Xtla можно разделить на несколько больших задач:
При работе с буферами Xtla для них всех определены общие команды: p
— перемещает к
предыдущему объекту, n
— переходит к следующему объекту, q
— прекращает работу с данным
буфером, m
и u
— ставят и снимают пометку с текущего объекта.
Для работы с архивами используется команда tla-archives
(или сочетание клавиш C-x T A
).
При ее вызове, пользователю будет показан список зарегистрированных архивов, по которому
он сможет перемещаться, и просматривать их содержимое.
При работе в данном режиме, в буфере действует специальный режим, для которого определено
некоторое количество команд — регистрация архивов, работа с закладками и т.п. Наиболее
часто используемые команды вынесены в отдельное меню, которое называется Archives
. Эти же
команды доступны через набор определенных клавиш, список наиболее часто используемых
клавиш и команд приведен в данной таблице:
Сочетание клавиш | Команда | Описание |
---|---|---|
a a |
tla-make-archive |
создать новый архив |
e |
tla-archive-edit-archive-location |
редактировать расположение выбранного архива |
s |
tla-archive-synchronize-archive |
синхронизировать текущий архив |
a m |
tla-archive-mirror-archive |
создать зеркало текущего архива |
a r |
tla-register-archive |
зарегистрировать архив |
r |
tla-archive-unregister-archive |
удалить регистрацию архива |
* |
tla-archive-select-default |
сделать текущий архив архивом, используемым по умолчанию |
RET |
tla-archive-list-categories |
отобразить категории для текущего архива |
o |
tla-archive-browse-archive |
интерактивно показать текущий архив |
g |
tla-archives |
обновить список архивов |
b |
tla-bookmarks-add |
добавить закладку для текущего архива |
Полный список клавиш, определенных для данного режима, вы можете получить с помощью
сочетания клавиш C-h m
.
Кроме использования tla-archives
вы можете использовать команду tla-browse
для просмотра
списка зарегистрированных архивов и веток разработки, в более красивом виде. Вы можете
видеть результат выполнения на рисунке.
Закладки сильно облегчают работу разработчика в том случае, если он работает с большим
количеством репозиториев. Для наиболее часто используемых версий, разработчик может
определить закладки и быстро переходить к нужным архивам и веткам разработки. Для работы
с закладками существует специальная команда —
tla-bookmarks
, которая вызывается
сочетанием клавиш C-x T b
. После ее выполнения будет создан буфер с именем
*tla-bookmarks*
, который вы можете использовать для работы с закладками. Для удобства
работы также создается меню Tla-Bookmarks
, которое содержит часто используемые команды.
Вы можете помечать несколько проектов как партнерские, и использовать затем команды для
группы закладок, что особенно удобно в тех случаях, если ведется много веток разработки, и
вы хотите быть в курсе разных ветвей разработки. Необходимо лишь пометить нужные проекты
и выполнить команду tla-bookmarks-marked-are-partners
(она привязана к сочетанию клавиш
M-p
).
Кроме этого, вы можете группировать проекты по разным принципам, и также выполнять команды
для отмеченных групп. Для работы с группами используется серия команд tla-...-group-...
.
При работе в буфере *tla-bookmarks*
в нем определены следующие команды:
Сочетание клавиш | Команда | Описание |
---|---|---|
* g |
tla-bookmarks-select-by-group |
выбрать закладки в группе |
* ! |
tla-bookmarks-unmark-all |
снять пометку со всех закладок |
RET |
tla-bookmarks-goto |
перейти к архиву связанному с данной закладкой |
> |
tla-bookmarks-get |
получить архив для текущей закладки |
= |
tla-bookmarks-changes |
выполнить tla changes для текущего дерева |
o |
tla-bookmarks-open-tree |
открыть локальное дерево в буфере dired |
M |
tla-bookmarks-missing |
просмотреть изменения, отсутствующие в вашем дереве |
P |
tla-bookmarks-move-up |
переместить закладку на позицию вверх |
N |
tla-bookmarks-move-down |
переместить закладку на позицию вниз |
i |
tla-bookmarks-inventory |
запустить tla inventory для локального дерева |
t |
tla-bookmarks-toggle-details |
переключить степень детализации вывода |
e |
tla-bookmarks-edit |
редактировать текущую закладку |
B L |
tla-open-internal-log-buffer |
открыть внутренний буфер tla . В этом буфере хранится список выполненных команд |
B p |
tla-show-process-buffer |
отобразить результаты выполнения последней команды |
M-p |
tla-bookmarks-marked-are-partners |
объявить помеченные закладки как партнеры |
a p |
tla-bookmarks-add-partner-interactive |
добавить партнера к текущей или помеченной закладке |
r p |
tla-bookmarks-delete-partner-interactive |
удалить партнерство с текущей или помеченной закладки |
f w |
tla-bookmarks-write-partners-to-file |
сохранить партнерство для помеченных закладок в файл партнеров |
f r |
tla-bookmarks-add-partners-from-file |
добавить список партнеров из файла партнеров |
a n |
tla-bookmarks-add-nickname-interactive |
добавить имя для текущей закладки |
r n |
tla-bookmarks-delete-nickname-interactive |
удалить имя для текущей закладки |
a t |
tla-bookmarks-add-tree-interactive |
добавить локальное дерево к закладке |
r t |
tla-bookmarks-delete-tree-interactive |
удалить локальное дерево из закладки |
a b |
tla-bookmarks-add |
добавить закладку для архива |
r b |
tla-bookmarks-delete |
удалить текущую закладку |
a g |
tla-bookmarks-add-group-interactive |
добавить группу закладок |
r g |
tla-bookmarks-delete-group-interactive |
удалить группу закладок |
Кроме работы с закладками из буфера *tla-bookmarks*
, вы можете выполнять действия
относящиеся к закладкам из других буферов, например, из буфера для работы с архивами
(команда b
).
При работе с выбранным репозиторием пользователь может выполнять самые разные действия — добавлять и удалять файлы, вставлять теги GNU Arch, и многое другое. Для этого выделены отдельные команды. Однако, более удобным способом работы будет использование буфера объектов (inventories).
Команда tla-inventory
(или сочетание клавиш C-x T i
) создает буфер *tla-inventory*
,
который содержит список объектов для выбранного каталога. Вы можете видеть результаты
выполнения этой команды на рисунке ниже. Используя данный буфер пользователь может
интерактивно работать с объектами репозитория — добавлять и удалять объекты, указывать их
тип, просматривать изменения, и выполнять множество других операций. Для выполнения
основных команд может использоваться меню Inventory
, создаваемое данной командой.
При работе с буфером *tla-inventory*
определены следующие команды:
Сочетание клавиш | Команда | Описание |
---|---|---|
g |
tla-generic-refresh |
обновить содержимое буфера |
U |
tla-inventory-revert |
отменить изменения в текущем файле |
< |
tla-inventory-mirror |
сделать зеркало для текущего архива |
e |
tla-inventory-file-ediff |
запустить Ediff для текущего файла |
= |
tla-inventory-changes |
просмотреть изменения для вашего дерева |
v |
tla-inventory-view-file |
показать текущий файл |
o |
tla-inventory-find-file-other-window |
открыть текущий файл в другом окне |
RET |
tla-inventory-find-file |
открыть текущий файл |
f |
tla-inventory-find-file |
открыть текущий файл |
L |
tla-logs |
запустить tla logs |
l |
tla-changelog |
запустить tla changelog |
c |
tla-inventory-edit-log |
редактировать лог для текущего дерева |
R |
tla-inventory-move |
переименовать текущий файл |
X |
tla-inventory-delete-files |
удалить локальные файлы |
^ |
tla-inventory-parent-directory |
перейти в родительский каталог в буфере inventory |
r |
tla-inventory-remove-files |
удалить идентификаторы для текущего файла |
a |
tla-inventory-add-files |
добавить текущий файл |
t u |
tla-inventory-toggle-unrecognized |
переключить режим показа не распознанных файлов |
t t |
tla-inventory-toggle-tree |
переключить режим показа корневого дерева |
t b |
tla-inventory-toggle-backup |
переключить режим показа резервных файлов |
t j |
tla-inventory-toggle-junk |
переключить режим показа "мусорных" (junk) файлов |
t p |
tla-inventory-toggle-precious |
переключить режим показа precious файлов |
t s |
tla-inventory-toggle-source |
переключить режим показа файлов исходных текстов |
t ~ |
tla-inventory-toggle-all-toggle-variables |
переключить все переключаемые переменные |
t - |
tla-inventory-reset-all-toggle-variables |
сбросить значения всех переключаемых переменных |
t + |
tla-inventory-set-all-toggle-variables |
установить все переключаемые переменные |
# u |
tla-inventory-add-to-unrecognized |
пометить текущий или выбранные файлы как не распознанные |
# p |
tla-inventory-add-to-precious |
пометить текущий или выбранные файлы как precious |
# ~ |
tla-inventory-add-to-backup |
пометить текущий или выбранные файлы как резервные |
# b |
tla-inventory-add-to-backup |
пометить текущий или выбранные файлы как резервные |
# j |
tla-inventory-add-to-junk |
пометить текущий или выбранные файлы как "мусорные" |
# e |
tla-inventory-add-to-exclude |
пометить текущий или выбранные файлы как исключения |
# x |
tla-inventory-add-to-exclude |
пометить текущий или выбранные файлы как исключения |
# V |
tla-inventory-set-tree-version |
задать версию для локального дерева |
# M |
tla-inventory-set-id-tagging-method |
задать метод идентификации |
# . |
tla-edit-.arch-inventory-file |
редактировать файл .arch-inventory |
# = |
tla-edit-tagging-method-file |
редактировать файл =tagging-method= |
* ! |
tla-inventory-unmark-all |
снять пометку со всех файлов |
* u |
tla-inventory-unmark-file |
снять пометку с файла |
* m |
tla-inventory-mark-file |
пометить текущий файл |
w a |
tla-save-archive-to-kill-ring |
сохранить имя архива текущего буфера в список удалений |
W l |
tla-tree-lint |
проверить текущее дерево |
W a |
tla-inventory-apply-changeset-from-tgz |
применить набор изменений из файла .tgz |
W A |
tla-inventory-apply-changeset |
применить набор изменений |
W v |
tla-show-changeset-from-tgz |
показать набор изменений из файла .tgz |
W V |
tla-show-changeset |
показать набор изменений |
W s |
tla-changes-save-as-tgz |
сохранить изменения в виде файла .tgz |
W S |
tla-changes-save |
сохранить набор изменений в каталоге |
W R |
tla-inventory-redo |
применить изменения, отмененные последней операцией отмены |
W U |
tla-inventory-undo |
отменить изменения для всего локального дерева |
B b |
tla-bookmarks |
отображает закладки в отдельном буфере |
B L |
tla-open-internal-log-buffer |
открыть внутренний буфер tla . В этом буфере хранится список выполненных команд |
B p |
tla-show-process-buffer |
отобразить результаты выполнения последней команды |
M < |
tla-inventory-apply-changeset |
применить набор изменений |
M u |
tla-inventory-update |
обновить текущее дерево из архива методом update |
M r |
tla-inventory-replay |
обновить текущее дерево из архива методом replay |
M s |
tla-inventory-star-merge |
слить вместе изменений из другого архива |
d > |
tla-inventory-delta |
вычислить список изменений для текущего дерева |
d e |
tla-inventory-file-ediff |
запустить Ediff для текущего файла |
d l |
tla-changes-last-revision |
показать изменения относительно последнего релиза |
d = |
tla-inventory-changes |
показать список изменений для текущего дерева |
d m |
tla-inventory-missing |
показать список отсутствующих изменений |
Пользователь может управлять отображением объектов в буфере, например, скрывая файлы
резервных копий (backup), или файлы, заведомо содержащие ненужные данные (junk). Для
этого используются команды tla-inventory-toggle-...
Работа с изменениями ведется аналогично работе с изменениями в пакете PCL-CVS. Вы можете
просмотреть список измененных файлов с помощью команды tla-changes
(или используя
сочетание клавиш C-x T c
), которая покажет вам список измененных файлов (он отображается в
буфере *tla-changes*
), и сами изменения. С помощью команды tla-changes-edit-log
(клавиша
c
в буфере *tla-changes*
вы можете ввести сообщение, описывающее изменения, и затем
установить изменения в репозиторий, используя сочетание клавиш C-c C-c
. Можно также
вносить изменения только для отмеченных файлов, что помогает делать изменения атомарными.
Настройка данного пакета не проста, а очень проста — выполните команду M-x
customize-group xtla
и задайте все необходимые опции. Диапазон настроек очень велик —
начиная от расположения команд, необходимых для работы, и до задания параметров
отображения данных. Вы также можете задать префиксное сочетание клавиш, отличное от
используемого по умолчанию.
Пакет позволяет пользователю задать хуки практически на каждую из реализованных им операций. Это позволит пользователю более тонко контролировать работу с данными в репозитории.
Немного дополнительной информации вы можете найти на странице GNU Arch WiKi, по адресу http://wiki.gnuarch.org/xtla. И конечно весь сайт GNU Arch WiKi будет вам великолепным подспорьем в работе с GNU Arch.
Для получения полного списка команд, используйте сочетание клавиш C-x T C-h
. Вы также
можете получить справку по конкретной команде tla
, используя сочетание клавиш C-x T h
command
, что приводит к запуску команды tla command -H
.
1. В настоящее время ведется разработка пакета dvc, который является развитием идей заложенных в Xtla и в котором планируется реализовать поддержку разных распределенных систме контроля версий, в том числе и отличных от Xtla. Более подробную информацию вы можете найти на сайте xtla.
Last change: 05.03.2013 16:54