トップ «前の日記(2006-10-29) 最新 次の日記(2006-11-01)» 編集

Route 477



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

参考:

*1 コミットログを書く時は、何のバグを修正したのかを明記しましょう:-P

[web] 今気付いたんだが

「plagger trac」でgoogle検索→http://plagger.org/tracをクリック→「plagger」と「trac」がハイライトされる

リファラを見てるんだろうなぁ。trac恐るべし。

本日のツッコミ(全2件) [ツッコミを入れる]
kzgs (2007-06-18 22:32)

認証のあるsvnでも使えますか?

yhara (2007-06-19 17:09)

うーん、ちょっと分かりません。すみません。<br>今のところ認証は実装されて無さそうですが。<br>http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/CustomFeed/SVNLog.pm