[ 地球流体電脳倶楽部 / 計算情報環境資源 / Subversion 手引き / SIGEN.htm ]

commit をメール通知する設定

以下では、コミット時にユーザにメールを送信するための設定を記す。


  1. 準備

準備

以下のスクリプトをレポジトリの中にある hook というディレクトリに post-commitという名前でコピーして実行権限を与える。

#!/usr/bin/ruby
repogroup = 'hoge'

REPOS=ARGV[0]
REV=ARGV[1].to_i

svnlookbin="/usr/bin/env LANG=ja_JP.eucjp /usr/bin/svnlook"

svnauthor=%x{ #{svnlookbin} author #{REPOS} -r #{REV}}.chomp!
svndate=%x{ /usr/bin/env LANG=C /usr/bin/svnlook date #{REPOS} -r #{REV}}.chomp!
svnchanged=%x{ #{svnlookbin} changed #{REPOS} -r #{REV}}.chomp!
svnlog=%x{ #{svnlookbin} log #{REPOS} -r #{REV}}.chomp!
svndiff=%x{ #{svnlookbin} diff #{REPOS} -r #{REV}}.chomp!


toaddr = repogroup + "@gfd-dennou.org"
fromaddr = svnauthor + "@gfd-dennou.org"

require 'net/smtp'
require 'kconv'

Net::SMTP.start( 'localhost', 25 ) {|smtp|
  smtp.send_mail <<EndOfMail, fromaddr, *toaddr
From: #{fromaddr}
To: #{toaddr};
Subject: #{repogroup} commit
Date: #{svndate}
Content-Type: text/plain; charset = ISO-2022-JP

#{svndate.tojis}, user #{svnauthor} committed following file(s)

Modified Files:
#{svnchanged.tojis}

Log Message:
#{svnlog.tojis}

EndOfMail
}

repogroupの行の hoge をレポジトリを使用するグループ名に変更する。 個人的な使用の場合は自分の名前にする。これがメールの受け取りアドレスになる。


GFD Dennou Club dcstaff@gfd-dennou.org
Last Updated: 2007/05/31, Since: 2007/05/31