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