ArX入門

インストール

ArXを使いたい場合どうすればいいかをまとめてみた。

Windowsの場合

cygwinをインストールした上で、gnome-vfs2とpython-2.4とArX-2.2.4をインストールすることで普通に使える。しかし、所詮CUIなソフトだ。覚悟してくれ。

Linuxの場合

ほとんどwindowsと同じ。デビアンのパッケージがあるようだが試していない。

NetBSDの場合

devel/ArX2 へいってmake install

最初の一歩

分散型のバージョン管理システムはたいてい「他の人とかぶらないID」を要求する。なぜか。それが秩序を保つ一つの方法だからだ。ArXの場合も同様だ。最初にやるべきことは自分のIDを設定することだ。ArXはメールアドレスをIDに使うことを推奨している。が、それにこだわらなくてもよいと勧告している。

% arx param id '"foo bar" email@address.jp'

しかし、これがユニークであることを検証する手段は存在しない。一方的にArXは信じることになる。あまり固く考えることなく、メールアドレスを設定するのが吉。spamよけにフリーのアドレスでもよい。だが一貫性は大事だ。

アーカイブ作成

次にアーカイブと呼ばれるリポジトリ(っぽい)領域を作成する。アーカイブには識別名と、アドレスと実体の三つがある。

% arx make-archive "name" directory

この"name"はArXの世界のURIで、公開情報=識別名になる。世界中が"name"でアクセスしてくる。しかし、この識別名に対応するアドレス(URL)はここでは指定しない。なぜか。それはArXの世界ではこの情報を管理しないからに他ならない。どういうことかというと、"name"に対応するアーカイブをどういう方法で公開するかについては、(ArXが理解できるプロとコロルであるという以外の)制限がなく、ftpでもnfsでもsshでもhttpでもfileなんでもよいし、すべてを使ってもよい。
では、"name"という名前がどういうプロトコルをサポートしているかを他のユーザに知らせる方法があるかというと、ない。
したがって、公開者は結局、公開するために用意したプロトコルのURLを公開することになる。
ArXはURLでアーカイブにアクセスすることで自動的に"name"を識別するようになる。プロトコルから"name"への変換は常に一意であり、解決可能なので、それはArXがクライアントとして行う。この手間は公開側にはない。
しかし、公開側としては、公開するタイミングをいろいろはかりたい訳だ。そのためだけにブランチを作ることもあり得るが、ArXはもっと単純な解決策を用意している。
ArXでは、ローカルアーカイブに対するミラーアーカイブを作ることができる。それがmirror機能だ。この機能により、砂場で遊んでいるさまを隠すことができる。つまり、気に入った時に、mirrorへ反映すればいいのだから。しかもmirrorは読み込みしかできないため荒らされることはない。このへんがsvnなどと違うところだ。svnだったらいちいち公開用のstableブランチへマージしないと駄目なんですよ。しかもsvnのマージ解決機能は賢くないんです。

アーカイブ名について

これだけ重要な"name"であるアーカイブ名について要求されていることはそれが世界で一意であるというその一点だけである。先ほどIDについてあなたが世界で一意であることを求めた訳で、ArXの設計者はID+なにがしかの文字列という書式を提案している。具体的にはこんなかんじに、arxのidと組み合わせた文字列である

goto_maki@invalid-archive1

こうすることであなたはいくつでもアーカイブを持つことができるよね。