Subversion 服务器为我们提供了很多的 hook ,可以让我们在有人对仓库进行动作的时候进行一些相应的处理,这些 hooks 都放在仓库目录下的 hooks 子目录下面,具体 hook 的含义可以参考 Subversion 的帮助的第 5 章的 Hook Scripts 。( Subversion 的在线官方文档 ,有多种语言版本),那么我们怎么用这些 hooks 来帮我们更加有效的利用 Subversion 呢。常用的一个方面是当有人提交新版本的时候能够自动的发送邮件给指定的一群人,方便交流和管理。
笔者的环境是linux 5.8 和 Python2.7
1. 配置hook 文件
-
mv //hooks/post-commit.tmpl />/hooks/post-commit
-
-
chmod +x />/hooks/post-commit
-
-
[root@system smu]# tail />/hooks/post-commit
-
-
REPOS="$1"
-
REV="$2"
-
-
/usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV" />/hooks/mailer.conf
2. 配置邮件mailer.conf
-
mail_command = /usr/sbin/sendmail
-
-
smtp_hostname = localhost
-
-
from_addr = fromsome@abc.com
-
-
to_addr = tosome@abc.com
现在,一个最简单的hook已经配置好了,每次有人提交的时候,这个hook就会发送邮件
3. 其他方法
除了用svn自带的邮件通知工具,也可以用其他的方法来实现
-
#!/bin/sh
-
-
REPOS="$1"
-
REV="$2"
-
AUTHOR=$(svnlook author -r $REV $REPOS)
-
DATE=$(svnlook date -r $REV $REPOS)
-
-
{
-
echo "REPOSITORY: $REPOS"
-
echo "REVISION: $REV"
-
echo "COMMITTED BY: $AUTHOR"
-
echo "DATE: $DATE"
-
-
echo ""
-
echo "DESCRIPTION:"
-
svnlook log -r $REV $REPOS
-
-
echo ""
-
echo "FILES:"
-
svnlook changed -r $REV $REPOS
-
-
} | mail -s "PerfPortal Check In Rev $REV by $AUTHOR" "somebody@abc.com"
阅读(2954) | 评论(2) | 转发(0) |