OSX 10.5でsvnserveを自動的に動かす方法

死ぬほど暑いのでクーラーの有る涼しいとこになるべくいたい。でもパソコン使いたいのでノーパソをもっと活用する事を考えねば。自宅のメインのマシンをMacに移行したときにTimeMachineもあるし開発中のソースコードはそのへん置いとけばいいかなとただフォルダつくって保存してたのだが、別の場所でいじること考えるとできればバージョン管理ツール使いたいなぁ。ということでSubversionの環境を整えてみようとしたのだが、なんだかんだで半日ほどハマった。というわけでメモ。

Subversionのセットアップ

Leopardは最初からインストールしてあるので、何もしなくても使えた。便利ー。

svnserveベースのサーバの立ち上げ

利用目的から他のパソコンから使えないと意味ないので、svnserveを使ってリポジトリを公開する。
で、前述の通りsubversionは最初からインストールしてあるので、何も考えずターミナルから

svnserve -d -r リポジトリのパス

で、サーバデーモンが起動する。簡単。
ところが、これをMac起動時から動かす方法がよくわからない。ググってみると「inetdじゃなくてxinetdを使え!」みたいな事が書いてあったので、その通りにやってみたのだが駄目。よくわからないので人力検索に質問してお昼にパスタ食べにいってスタバでザクロピーチフラペチーノを飲んでスイーツな気分で家に帰って、きっと回答がわらわらついてるよねーと開いてみたら1件もない。だめじゃん。
で、しょうがないので自力で調べようとググってみたらどうやらOSX Tigerからxinitdに代わって「launchd」という仕組みを使うらしい。これだ!
それでlaunchdで動かしたいプロセスを登録するにはxmlファイルを書かなきゃ駄目らしくて、またくじけそうになりそうだったんだけどLingonというGUIツールがあって助けられる。

  1. Newボタンを押して「Users Daemons」を選択
  2. 1.namesに「org.tigris.subversion.svnserve」を入力
  3. 2.Whatに「/usr/bin/svnserve -d -r リポジトリのパス」を入力(svnserveはフルパスで指定)
  4. 3.Whenの「Run it when it is loaded by the system(at startup or login)」をチェック
  5. Saveをクリックして閉じる
  6. OSを再起動

これで、システム起動時に自動的にsvnserveが起動するようになった。やったー。
ちなみに、定期的にプロセスを起動したい場合なんかにもこのLaunchdを使ったりするらしい。覚えとこっと。