我在centos上yum安装了1.6.11版本的svn
创建了一个库名字为repo1
我想利用repo1中的hooks去配置提交代码时的邮件通知
hooks 解释:http://blog.csdn.net/littlegrizzly/article/details/7371517
我在/usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/目录下找到了mailer.py文件,所以使用mailer.py发送邮件
mailer.py发送邮件时还需要一个配置文件,这个配置文件的例子应该在/usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer 目录下,名字叫mailer.conf.example, 可以把这个文件拷贝到repo1/conf中,并修改文件名称为mailer.conf
接下来修改mailer.conf文件的内容, 这里修改的地方有:
其他的不做改动
再修改repo1/hooks下的post-commit.tmpl文件
将其改名为post-commit,并附上可执行权限chmod a+x post-commit
修改其内容为:
注意以上代码有个mail.log,用来记录发送时的日志
好了,现在每次提交可以发送邮件了
另:可以这样测试
其中184是svn提交时的版本号,这个版本号一定是svn上存在的,否则会报错svn.core.SubversionException: ('No such revision 1847', 160006)
如何知道svn提交的版本号:我在配置过程中,是在eclipse的svn插件提交测试的,可惜的是第一次邮件发送没有成功,然后我查看了一下mail.log, 里面记录的失败提交的版本号,这样我就搞到了一个svn存在版本号了,然后用以上代码直接命令行测试就好
创建了一个库名字为repo1
我想利用repo1中的hooks去配置提交代码时的邮件通知
hooks 解释:http://blog.csdn.net/littlegrizzly/article/details/7371517
我在/usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/目录下找到了mailer.py文件,所以使用mailer.py发送邮件
mailer.py发送邮件时还需要一个配置文件,这个配置文件的例子应该在/usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer 目录下,名字叫mailer.conf.example, 可以把这个文件拷贝到repo1/conf中,并修改文件名称为mailer.conf
接下来修改mailer.conf文件的内容, 这里修改的地方有:
smtp_hostname = smtp.qq.com
smtp_username = xxxxx@xxxx.xxx
smtp_password = xxxxx
from_addr = xxxxx@xxxx.xxx (注:这里的邮箱地址应该与smtp_username相同,并且from_addr是[defaults]标签下的,[general]中也有一个from_addr,不做修改)
to_addr = XXXX@qq.com XXX@sina.com.cn (多个用空格分开)
其他的不做改动
再修改repo1/hooks下的post-commit.tmpl文件
将其改名为post-commit,并附上可执行权限chmod a+x post-commit
修改其内容为:
/usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV" /repo1/conf/mailer.conf
if [ $? -ne 0 ]; then
echo "failure to mailer.py commit $REPOS $REV" >> /repo1/conf/mail.log
fi
注意以上代码有个mail.log,用来记录发送时的日志
好了,现在每次提交可以发送邮件了
另:可以这样测试
/usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit /repo1 184 /repo1/conf/mailer.conf
其中184是svn提交时的版本号,这个版本号一定是svn上存在的,否则会报错svn.core.SubversionException: ('No such revision 1847', 160006)
如何知道svn提交的版本号:我在配置过程中,是在eclipse的svn插件提交测试的,可惜的是第一次邮件发送没有成功,然后我查看了一下mail.log, 里面记录的失败提交的版本号,这样我就搞到了一个svn存在版本号了,然后用以上代码直接命令行测试就好