2006-05-08
■[開発]Macとsvkでユビキタスプログラミング
数日前にMac Powerbook G4を購入し、コードを書いている。操作感は長年使ってきたLinuxとほぼ変化無い。必要なもを落としてきてautoconf/automakeでコンパイルすればLinuxで使っていたソフトウェアがほぼ同じように動く。かなり期待以上の物が手に入ったというのが感想。PHPやPerl書いているWebエンジニアはみんなMacにしたらいいんじゃないかと思う。
開発環境が以前と明らかに変わったのは、スタンドアローンのノートになったという事。つまりこれ単体でApache/MySQL/PHP/emacs/firefoxが動く環境にあり、その他のコマンドラインツールも一つのパソコンに入れる事ができる。
2年ほど前東芝のノートパソコンにLinuxを入れて使っていたことがあったが、電源管理がへたれで、Linux標準のものがハードメーカが作ったものにずいぶん見落とりし*1、バッテリーが保たなくなったためLinuxノートを諦めた事があったが、もちろんMacではそんな事はあり得ない。すいすい持ち歩いて、思いついたらどこでもコードを書き始める事ができる画期的なツールだ。サスペンド状態からの復帰が早いのもすばらしい。
唯一問題なのが、開発記録をとるためSubversionのリポジトリだけは外のネットワーク上に無くてはならないこと。そこで、Subversionをローカルでミラーするsvkを使う。svkを使えば、オフラインで開発が可能になる。ネットがつながったときに、svkからSubversionへまとめてアップロードすれば良い。
svkの使い方をざっくり説明
svkのインストール
以下から。
Mac OSX用のバイナリがある。これを迷わずGet.
セットアップ
svk depotmap --init
これだけ。
リモートミラーの作成
リモートミラーとして、//mirror/bookmarkを作成する
svk mirror http://svn.tracfort.jp/svn/bookmark //mirror/bookmark
リモートミラーのアップデート
syncコマンドで、ネットワーク上のリポジトリとリモートミラーを同期する
svk sync //mirror/bookmark
ここから、オフラインで可
ローカルリポジトリの作成
手元で変更する為にローカルにリモートミラーのブランチを作成する
svk cp //mirror/bookmark //bookmark
チェックアウトして作業環境を作成する
svk co //bookmark/trunk bookmark
作業とコミット
チェックアウトした、bookmarkディレクトリに対して普通に変更する
そして、普段通りsvk(svnではなく)を使ってコミットする
svk ci -m 'hogehoge' ファイル名
ここで、コミットされるのはローカルリポジトリになる(svk info参照のこと)
と、ここまではオフラインでOK
リモートミラーへマージ
家や会社に帰ってネットワークにつながったら、以下のコマンドでリモートミラーに反映する
svk sync //mirror/bookmark
ローカルリポジトリへの変更をミラーにマージする
svk smerge -l //bookmark //mirror/bookmark
smergeの-lオプションは、ローカルリポジトリに書いたコミットログをミラーへのコッミットログのデファルトに設定してくれるのでおすすめ。これでリモートへもコミットされる。
とまぁざっくりこんな感じでsvkは便利に使えたりする。
smergeやリポジトリ名が//bookmarkのように短縮できるあたり、svnのフロントエンドとしても便利。
詳しい、チュートリアルもあるので参考までに。
http://svk.elixus.org/?SVKTutorial
近所の喫茶店でコーヒーを飲みながらプログラミングを楽しむ環境がこんなに簡単に手に入るとは思ってなかった。脱、引きこもり中。
*1:今はそんな事無いかもしれない


