ただのにっき
2007-02-08(木) [長年日記]
■ svnnotify
こないだからまじめにRubyForgeを使うようになって、結果的に開発のためにsvnを使うようになったんだけど(個人的なドキュメント管理にはだいぶ前から使っていた。原稿とか)、まずはcommit logをメールで受け取りたいと。
でも、svnのサンプルに付いてるようなショボいのはいやん、と思ったので調べていたら、RubyForgeのFAQにHow do I get diff emails when I commit code?というのがあった。おお、これこれ。
でもこのまま使ってみるとHTMLメールになっちゃって、W-ZERO3で読めなかったりするものだから、もうちょっとシンプルにしようと思ってsvnnotifyを探すも見つからない。ウロウロしてたらCPANにあった。CPANか〜。
で、久々にCPANをセットアップ中。続きはあとで書く。まぁ、ドキュメントだけあればいいんだが。
続き。
「diffを色付けされたHTMLで受け取りつつ、テキストしか読めないメーラーでも読めるようにしたい」というニーズであれば、post-commitを以下のようにするのが吉なようだ:
#!/bin/sh REPOS="$1" REV="$2" PATH=/usr/bin:/bin:/usr/local/bin PROJECT=/var/svn/hatenagraphup svnnotify --repos-path "$REPOS" --revision "$REV" \ --svnlook /usr/local/bin/svnlook \ --to sho@spc.gr.jp --from `whoami`@rubyforge.org \ --with-diff --subject-cx \ --handler Alternative --alternative HTML::ColorDiff
もちろん、SVN::Notifyだけでなく、SVN::Notify::HTML::ColorDiffやSVN::Notify::Alternativeが必要。
でも、よく考えてみたらHTMLメールなんて別に欲しくないし、そういう整形やら色付けされたリソースは、メールよりもむしろfeedして受け取ったほうが嬉しいよなぁと思い、現状はシンプルにこんな感じとなった:
#!/bin/sh REPOS="$1" REV="$2" PATH=/usr/bin:/bin:/usr/local/bin PROJECT=/var/svn/hatenagraphup svnnotify --repos-path "$REPOS" --revision "$REV" \ --svnlook /usr/local/bin/svnlook \ --to sho@spc.gr.jp --from `whoami`@rubyforge.org \ --with-diff --subject-prefix '[hatenagraphup] ' --subject-cx
これで受け取ったメールからfeedを生成するようなツールを書けばいいじゃんね。つーかそれPla