2006-10-30
■ [prog] CVSって、checkoutしないとログ見れないもんなんでしょうか
とIRCで聞いたら「cvs rlog」というコマンドがあると教えてもらった。
しかしmanに書いてないとか罠すぎる!
■ [Plagger] PlaggerでSubvesionのコミットログをIRCに通知する
Notify::IRCを使ってみた。非常に簡単に使えて感動。
まず、IRC用にいくつかライブラリが必要。
cpan> install POE POE::Component::IRC POE::Component::IKC
次にsvnirc.yamlを書く。
plugins: - module: CustomFeed::SVNLog config: target: svn://somewhere/some/project title: proj reverse: 0 fetch_items: 10 #同じログが2回流れないようにする - module: Filter::Rule rule: - module: Deduped - module: Notify::IRC config: daemon_port: 9991 nickname: botname server_host: irc.tokyo.wide.ad.jp server_port: 6667 server_channels: - "#channel-name:*.jp" charset: iso-2022-jp announce: notice
で、IRC botを起動する。Plaggerにはplagger-ircbotという簡易ボットが付属しているので、それを使う。
plagger-ircbot -c svnirc.yaml &
あとは、
plagger -c svnirc.yaml
を実行するたびにコミットログがIRCに流れる。
デフォルトでは
02:45 (botname) proj: revision 36 (yhara) - svn://path/to/repository
みたいな感じで更新内容が表示されないので、assets/plugins/Notify-IRC/irc_notify.tt を編集して
[% IF entry.author %]<^C03[%entry.author%]^C[% END %]@[% IF feed.title %]^B[%feed.title_text %]^B>[% END %] [% entry.title_text %] - [% entry.body %]
のようにしてみた(^B等は色を変えるためのコントロールコード。vimなら^V^B, emacsならC-q C-b)。
(2007/2/15追記:直接編集するんじゃなくて、my-assets/plugins/Notify-IRC/irc_notify.tt にファイルを置いて
global: timezone: Asia/Tokyo assets_path: my-assets ...
みたいにすればいいようだ。)
これで
02:45 (botname) <yhara@proj> revision 36 - バグ修正
のように表示される。*1
参考:
- Bulknews::Subtech - [Plagger] Intranet blog to IRC
- example/irc.yaml
*1 コミットログを書く時は、何のバグを修正したのかを明記しましょう:-P
■ [web] 今気付いたんだが
「plagger trac」でgoogle検索→http://plagger.org/tracをクリック→「plagger」と「trac」がハイライトされる
リファラを見てるんだろうなぁ。trac恐るべし。
認証のあるsvnでも使えますか?
うーん、ちょっと分かりません。すみません。<br>今のところ認証は実装されて無さそうですが。<br>http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/CustomFeed/SVNLog.pm