ArX入門
インストール
ArXを使いたい場合どうすればいいかをまとめてみた。
Windowsの場合
cygwinをインストールした上で、gnome-vfs2とpython-2.4とArX-2.2.4をインストールすることで普通に使える。しかし、所詮CUIなソフトだ。覚悟してくれ。
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のマージ解決機能は賢くないんです。