うちでは 普段実行している plagger は本家 trunk から持ってきていて、自分で作ったプラグインは svn.mizzy.org に置いてあるのですが、以下の様なプロセスで開発してました。
2.のコピーがめんどくさくて、svk 使えばもっとエレガントになるんじゃないかな、と以前から思っていたのですが、使い方間違えると本家 trunk に余分なファイルまでコミットしてしまいそうで、怖くて使ってなかったのですが、色々試行錯誤してみて、こんな感じでいけそうだという感触がつかめたので、ここに整理しておきます。
本家 trunk のローカルミラーとローカルブランチの作成
$ svk mirror //mirror/plagger-trunk http://svn.bulknews.net/repos/plagger/trunk/plagger $ svk sync //mirror/plagger-trunk --skipto HEAD $ svk cp -p //mirror/plagger-trunk //local/plagger-trunk
svn.mizzy.org のローカルミラーとローカルブランチの作成
$ svk mirror //mirror/plagger-mizzy http://svn.mizzy.org/public/plagger/trunk $ svk sync //mirror/plagger-mizzy $ svk cp //mirror/plagger-mizzy //local//plagger-mizzy
svk リポジトリの確認
$ svk list -R -d 1 // local/ plagger-mizzy/ plagger-trunk/ mirror/ plagger-mizzy/ plagger-trunk/
ローカルディレクトリにチェックアウト
$ mkdir svk [~] $ cd svk [~] $ svk co //local/plagger-trunk [~/svk] $ svk co //local/plagger-mizzy [~/svk] $ ls [~/svk] plagger-mizzy/ plagger-trunk/
プラグインを作ったり、修正したりして plagger-mizzy ローカルブランチにコミット
$ ./tools/plugin-start.pl Filter::Hoge [~/svk/plagger-mizzy] ... <プラグインを書く> ... $ svk commit [~/svk/plagger-mizzy]
つくったプラグインを plagger-trunk ローカルブランチとマージしてテスト
$ svk smerge -B //local/plagger-mizzy [~/svk/plagger-trunk] $ ./plagger -c test.yaml [~/svk/plagger-trunk]
プラグインに問題がなければ、plagger-mizzy ブランチの変更を svn.mizzy.org にコミット。一度 plagger-trunk とマージしてしまうと、なぜか svk push では svn.mizzy.org まで反映されなくなってしまったので、svk smerge 。
$ svk smerge //local/plagger-mizzy //mirror/plagger-mizzy
まだ試してないけど、こんな感じでできるはず。
$ svk commit files_to_commit [~/svk/plagger-trunk] $ svk push -C [~/svk/plagger-trunk] $ svk push --verbatim [~/svk/plagger-trunk]
余計なファイルまでコミットしてしまうと迷惑をかけてしまうので、-C をつけて確認する。
UPDATE: Shibuya.pm テクニカルトーク #7の発表資料 も併せてご参照ください。