XSteve's Arch page

Arch interface for emacs: Xtla.el

  • Xtla.el is a simple emacs interface for gnu arch and for bazaar.
  • If you miss any functionality or find a bug, please send an email (xtla-el-dev@gna.org).

You can get Xtla.el via tla/baz:
# tla register-archive http://arch.xsteve.at/2005
# tla get -A stefan@xsteve.at--public xtla--main--1.1 xtla

My development branch is also available:
# tla get -A stefan@xsteve.at--public xtla--dev--1.1 xtla

Some Xtla tips

The bookmarks feature

You can display the bookmarks via M-x tla-bookmarks.
a b allows you to enter a new bookmark.

Here is a part of my bookmarks list:
M-x tla-bookmarks
                    xtla: xsteve@nit.at--public/xtla--devo--0.9
              emacs-wiki: mwolson@gnu.org--2005/emacs-wiki--main--1.0
              emacs-muse: mwolson@gnu.org--2005/muse--main--1.0
           emacs-planner: sacha@free.net.ph--main/planner--dev--1.0
          emacs-remember: sacha@free.net.ph--main/remember--dev--1.0
                   emacs: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0
                    gnus: miles@gnu.org--gnu-2005/gnus--devo--0

From here I can show the missing patches for a bookmark (I used
emacs-wiki here):
M m (M-x tla-bookmarks-missing)

*** Bookmark emacs-wiki (mwolson@gnu.org--2005/emacs-wiki--main--1.0): ***

Missing patches from partner emacs-wiki:
    mwolson@gnu.org--2005/emacs-wiki--main--1.0--patch-32  [NOT MERGED]
      Add definition for  tags in default CSS stylesheet
      Michael Olson 
      2005-01-30 03:53:28 GMT


Now I can view/merge the new patches

=   ... displays the changeset
l   ... displays the log message
M u ... calls tla update
M s ... calls tla star-merge

When you only track these projects, you can hit = to display the
changeset, hit l to show the log message and finally hit M u to update
your tree with the available new patches.

If you are responsible for the integration branch and want to merge
from different branches you can use the partners feature. We use it
for the Xtla development and it is a really nice thing.

Here is how it works:
You can add a partner for your bookmarks via a p (M-x
When you then use M m, you get the missing patches of all your
partners. After that you can star-merge them via M s.

When you are ready to commit the merged stuff, just use
C-u C-c C-m (M-x tla-log-edit-insert-log-for-merge) to prepare a log
message for the merge.

Send and apply arch patches via gnus

Sometimes you don't want to setup an arch archive to provide a new
feature. Here is what I do to accomplish this for Xtla:

I maintain the archive at home. I have a public mirror for it, so I
can access it from work also.
Sometimes I make some fixes at work that I want to apply to archive at
home. What I do no is: I send the patch via mail and apply it at home.

I have modified the function I use to send a patch to the
emacs-wiki-discuss list:

(defvar planner-package-root-directory nil)
(defun planner-submit-patch ()
  "Submit a patch to the emacs-wiki-discuss list.
With this feature it is not necessary to tag a planner archive.
You simply edit your checked out copy from Planner.el and call this function.
The function will create a patch as *.tar.gz file and prepare a mail that
you can send to the emacs wiki discuss list."
  (tla-prepare-patch-submission (tla-tree-root
                                 (file-name-directory (or planner-package-root-directory (locate-library "planner"))))
                                (concat "++planner-patch-" (format-time-string "%Y-%m-%d_%H-%M-%S" (current-time)))
                                 "Please change the Subject header to a concise description of your patch.\n"
                                 "Please describe your patch between the LOG-START and LOG-END markers:\n"

So all you have to do as contributor is to 
* hack your checked out version of Planner.el
* call M-x planner-submit-patch
* Enter a description for your patch
* Send the message
* Undo the changes in your working copy (they are saved in the tarball)
* Wait until your patch is accepted ;-)
* Update from the main archive

It is also easy for the maintainer to apply your patch.
Here is what I have in my .emacs:

(setq tla-apply-patch-mapping
      '(((nil "xtla" nil  nil nil) "~/work/myprg/xtla")))

tla-insinuate-gnus installs the following new keybindings for the gnus summary:
K t v `tla-gnus-article-view-patch'
K t a `tla-gnus-article-apply-patch'
K t l `tla-gnus-article-extract-log-message'

So you just hit K t a to apply the patch. The description of the patch
is saved and can be inserted with C-c C-p, when you commit via Xtla.

As I have already mentioned, I use that way to transfer patches from
work to my archive at home.

Links to Arch ressources on the net

Back to my Programming Homepage

Last modified: Wed Jul 27 22:09:36 CEST 2005