mailer.py は以下から入手可能です。 http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer
Subversion のソースコード配布ファイルの中にも含まれています。参照
Python bindings をインストールしたら、mailer.conf という設定ファイルを 編集する必要があります。mailer.conf.example という設定ファイルのサンプルが あるのでこれを元に編集すれば OK です。
mailer.py はメールを送信するとき、ファイルの中身が UTF8 である前提で 動作するようになっています。
ファイルの中身が Shift-JIS や EUC であれば以下のようになり文字化けしてしまいます。ただしメールソフトが UTF8 のメールに対応していないと、コミットメールは 文字化けして読めません
変更前
diff = /usr/bin/diff -u -L %(label_from)s -L %(label_to)s %(from)s %(to)s変更後
diff = /var/svn/diff.pl -u -L %(label_from)s -L %(label_to)s %(from)s %(to)sdiff.pl (渡された引数を /usr/bin/diff にそのまま渡して、nkf をパイプで つないで呼び出すスクリプト)
#!/usr/bin/perl
$diff = "/usr/bin/diff";
$nkf = "/usr/bin/nkf";
$cmd = "$diff ";
foreach $arg ( @ARGV )
{
$cmd = "$cmd \"$arg\"";
}
$cmd = "$cmd | $nkf --utf8";
system $cmd;
$ ./mailer.py --help
USAGE: mailer.py commit REPOS REVISION [CONFIG-FILE]
mailer.py propchange REPOS REVISION AUTHOR REVPROPNAME [CONFIG-FILE]
mailer.py propchange2 REPOS REVISION AUTHOR REVPROPNAME ACTION [CONFIG-FILE]
mailer.py lock REPOS AUTHOR [CONFIG-FILE]
mailer.py unlock REPOS AUTHOR [CONFIG-FILE]
If no CONFIG-FILE is provided, the script will first search for a mailer.conf
file in REPOS/conf/. Failing that, it will search the directory in which
the script itself resides.
ACTION was added as a fifth argument to the post-revprop-change hook
in Subversion 1.2.0. Its value is one of 'A', 'M' or 'D' to indicate
if the property was added, modified or deleted, respectively.
コミットメールを送るには、設定ファイルを編集して
mailer.py commit REPOS REVISION [CONFIG-FILE]の構文に従って mailer.py を実行すれば OK なのです
REPOS="$1" REV="$2" /usr/bin/python $REPOS/hooks/mailer.py commit "$REPOS" "$REV" &