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" &
备注:tools/hook-scripts/mailer/mailer.py", line 958. Error: class DifflibDiffContent(): Error: ^ Error: SyntaxError: invalid syntax
这个错误的时候把DifflibDiffContent():改为DifflibDiffContent:即可。