TU-Berlin  →  Institut für Mathematik  →  Algebra und Zahlentheorie
Site Map
Sebastian Freundt -- guide-to-arch

I'm supposed to post a small introductory guide to gnu arch with respect to SXEmacs development here:

Preliminaries:

  • gnu arch is a concept and tla is an implementation of gnu arch
  • Nonetheless I'll use both terms as synonyms

Step by step guide to your check-out of the mainline

  • Download and compile arch tla:
    Visit ftp://ftp.gnu.org/gnu/gnu-arch and fetch some recent version
  • Generate your arch-id:
    tla my-id "Sebastian Freundt <hroptatyr@sxemacs.org>"
    (of course use your own names there ;P)
  • Registering Steve's archive:
    tla register-archive steve@sxemacs.org--2006 http://arch.sxemacs.org/2006
  • Check out the sxemacs main line:
    tla get -A steve@sxemacs.org--2006 sxemacs--main--22.1.4 sxemacs

Okay, now you have a directory sxemacs (your checkout of steves category) in your wd to examine.

Step by step guide to create you own branch of the mainline

  • Generate your archive:
    tla make-archive -s -l hroptatyr@sxemacs.org--sxemacs
    <location> may be anything you can access that archive easily.
    The modern way of dealing with this is to have a location on the local file system (specified by an absolute path) and a mirror somewhere at some webspace.

    See also next point.

    the -s flag is for signed archives which we use here at the SXEmacs world the -l flag is for listing which isn't important if you don't distribute your archive via http
    BEWARE: at least Steve has to read from your archive, so if you use some location like sftp://some.host be sure to also provide a login for him. Again the solution is mirroring:

  • Generate a mirror:
    You can establish a mirror of your archive to provide read-access to everybody. Common scenarios are: archive stored locally via filesystem and mirrored on some webspace with read-access to everybody.
    Again, if you want to avoid fiddling with the magics of a setup of webDAV you probably want to have the --listing (-l) flag enabled at your mirror destination
    tla make-archive -s -l -m <archive-name> <mirror-location> archive-name is the archive you want to mirror, e.g. hroptatyr@sxemacs.org--sxemacs in my case
    <mirror-location> is some uri to reach the mirror. Note: This is YOUR path for WRITING TO the mirror
    For instance: If you have a provider of webspace who grants you access to your web-content via sftp use sftp://user@machine/path/to/web-content/ here
    Your uri for the outside world of that directory can then be: http://some.machine/path/to/arch/
  • tagging the mainline:
    tla tag -S steve@sxemacs.org--2006/sxemacs--main--22.1.4 sxemacs--<your-branch>--22.1.4
    <your-branch> is some indicator to your branch, i use hrop as it is my nick name of my irc nick name, but be creative :)
  • Checkout your branch:
    Checking out your own branch after tagging the mainline is just basically a `tla get' of the mainline but on behalf of your branch
    tla get sxemacs--<your-branch>--22.1.4 sxemacs
    should establish a directory sxemacs, which is your personal version of sxemacs in your personal archive

Okay that's it. Now it merely comes to distributing your archive to the world

  • Mirror your archive to the world-reachable location after editing stuff:
    tla archive-mirror

Step by step guide to dealing with signed archives

  • Go to ~/.arch-params
  • Create a directory signing there and cd to it
  • Pump a default checking rule into it:
    echo "gpg --verify-files -" > \=default.check
  • Pump a default signature rule into it:
    echo "gpg --clearsign" > \=default

That's it. Now you can securely verify revisions which are signed. For SXEmacs archives this is a must!

Summary

Fine, now you're an arch guru :) Wait, until I have some problems with arch, I will contact you immediately begging for help :)