Chinaunix首页 | 论坛 | 博客
  • 博客访问: 426524
  • 博文数量: 126
  • 博客积分: 35
  • 博客等级: 民兵
  • 技术积分: 1262
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 16:39
文章分类

全部博文(126)

文章存档

2017年(2)

2016年(20)

2015年(64)

2014年(24)

2013年(16)

我的朋友

分类: 系统运维

2015-10-08 17:02:39

一、提交时邮件通知
1、找到svn自带的mailer.py的位置,复制到/usr/local/bin/下
updatedb && locate mailer.py
cp /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py /usr/local/bin/

2、进入svn的hooks目录,增加post-commit文件,内容如下:
#!/bin/sh

  1. REPOS="$1"
  2. REV="$2"

  3. /usr/local/bin/mailer.py commit "$REPOS" "$REV" /home/svn/design/conf/mailer.conf

3、在/home/svn/design/conf下增加mailer.conf,内容如下:
  1. [general]
  2. smtp_hostname = smtp.exmail.qq.com
  3. smtp_username = svn@***.com
  4. smtp_password = *******

  5. [defaults]
  6. diff = /usr/bin/diff -u -L %(label_from)s -L %(label_to)s %(from)s %(to)s
  7. commit_subject_prefix = [svn commit]
  8. propchange_subject_prefix = [svn propchange]
  9. lock_subject_prefix = [svn lock]
  10. unlock_subject_prefix = [svn unlock]
  11. from_addr = svn@@***.com
  12. to_addr = svn@@***.com
  13. generate_diffs = none
  14. show_nonmatching_paths = no

  15. [app_group]
  16. for_paths = app设计文档/.*
  17. to_addr = user_a@***.com user_b@***.com user_c@***.com

  18. [pc_group]
  19. for_paths = pc设计文档/.*
  20. to_addr = user_a@***.com user_d@***.com user_e@***.com

网上的例子,大多对mail.conf只做了默认配置,浪费了mailer.py的功能。

不同目录的变动发送给不同人员的例子:
  1. [general]
  2. smtp_hostname = smtp.exmail.qq.com
  3. smtp_username = xxx@xxx.com
  4. smtp_password = xxxxxx
  5. [defaults]
  6. diff = /usr/bin/diff -u -L %(label_from)s -L %(label_to)s %(from)s %(to)s
  7. commit_subject_prefix = [svn commit]
  8. propchange_subject_prefix = [svn propchange]
  9. lock_subject_prefix = [svn lock]
  10. unlock_subject_prefix = [svn unlock]
  11. from_addr = xxx@xxx.com
  12. to_addr = xxx@xxx.com
  13. generate_diffs = none #不生成差异详情(太丑)
  14. show_nonmatching_paths = no #不显示未匹配的修改
  15. [a_group]
  16. for_paths = DirA/.*
  17. to_addr = user1@xxx.com user2@xxx.com #a组成员邮箱列表(以空格分隔)
  18. [b_group]
  19. for_paths = DirB/.*
  20. to_addr = user3@xxx.com user4@xxx.com #b组成员邮箱列表(以空格分隔)
具体的要参考mailer.conf.example(安装了subversion就会有,用updatedb && locate mailer.conf.example找下)


二、不允许日志为空
进入svn库的hooks目录,增加文件pre-commit并赋予755权限,文件内容如下:
  1. #!/bin/bash
  2. # Make sure that the log message contains some text.

  3. REPOS="$1" 
  4. TXN="$2" 

  5. SVNLOOK=/usr/bin/svnlook 
  6. LOGMSG=`$SVNLOOK log -t $TXN $REPOS | wc -m`

  7. if [ "$LOGMSG" -lt 10 ]
  8. then 
  9.  echo "please input valid messages.">&2
  10.  exit 1 
  11. fi 

  12. exit 0
参考:
http://blog.51yip.com/linux/1263.html
阅读(3069) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~