サブバージョン コミットメールの配信方法
* /var/subversion/svn/hooks/post-commit スクリプトを作成し、(コミット直後にSubversionにより実行される)
* post-commit スクリプトから/usr/lib/subversion/hook-scripts/commit-email.rb を呼ぶ
* スクリプトには実行権限を付けておく
post-commitを書き換える
#!/bin/sh
REPOS="$1"
REV="$2"export LANG=japanese
/usr/lib/subversion/hook-scripts/commit-email.rb "$REPOS" "$REV"
cd /var/www/htdocs
umask 002
svn update `svnlook dirs-changed $REPOS | sed -e 's,htdocs/,,'` &
commit-email.rbは下記のように記述する
#!/usr/bin/ruby -Ke require 'net/smtp' require 'kconv' REPOS=ARGV[0] REV=ARGV[1].to_i svnauthor=%x{svnlook author #{REPOS} -r #{REV}}.chomp svndate=%x{svnlook date #{REPOS} -r #{REV}}.chomp svnchanged=%x{svnlook changed #{REPOS} -r #{REV}}.chomp svnlog=%x{svnlook log #{REPOS} -r #{REV}}.chomp svndiff=%x{svnlook diff #{REPOS} -r #{REV}}.chomp toaddr =['info1@hoge.co.jp', 'info2@hoge.co.jp', 'info3@hoge.co.jp', 'info4@hoge.co.jp'] fromaddr=['Subversion@localhost.localdomain'] svnlog=svnlog.kconv(Kconv::EUC, Kconv::ASCII) body = <
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
実行権限とか
# chmod 755 commit-email.rb
# chown www-data.www-data commit-email.rb
※ /usr/lib/subversion/hook-scripts/commit-email.pl を用いる方法で日本語文字化けが解決できなかったのでrubyスクリプトを用いた方法で代替しました。キッーーー!!
※ 参照:http://f29.aaa.livedoor.jp/~yamakan/index.php?SVN(Subversion)%20%A5%B3%A5%DF%A5%C3%A5%C8%A5%E1%A1%BC%A5%EB%C0%DF%C4%EA
# apt-get install ruby
で簡単にインストできました。