Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2395516
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类: 项目管理

2013-06-07 16:59:22

Subversion 服务器为我们提供了很多的 hook ,可以让我们在有人对仓库进行动作的时候进行一些相应的处理,这些 hooks 都放在仓库目录下的 hooks 子目录下面,具体 hook 的含义可以参考 Subversion 的帮助的第 5 章的 Hook Scripts 。( Subversion 的在线官方文档 ,有多种语言版本),那么我们怎么用这些 hooks 来帮我们更加有效的利用 Subversion 呢。常用的一个方面是当有人提交新版本的时候能够自动的发送邮件给指定的一群人,方便交流和管理。

笔者的环境是linux 5.8 和 Python2.7

1. 配置hook 文件

点击(此处)折叠或打开

  1. mv //hooks/post-commit.tmpl />/hooks/post-commit

  2. chmod +x />/hooks/post-commit

  3. [root@system smu]# tail />/hooks/post-commit

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

  6. /usr/share/doc/subversion-1.6.11/tools/hook-scripts/mailer/mailer.py commit "$REPOS" "$REV" />/hooks/mailer.conf

2. 配置邮件mailer.conf

  1. mail_command = /usr/sbin/sendmail

  2. smtp_hostname = localhost

  3. from_addr = fromsome@abc.com

  4. to_addr = tosome@abc.com
现在,一个最简单的hook已经配置好了,每次有人提交的时候,这个hook就会发送邮件

3. 其他方法

除了用svn自带的邮件通知工具,也可以用其他的方法来实现
  1. #!/bin/sh

  2. REPOS="$1"
  3. REV="$2"
  4. AUTHOR=$(svnlook author -r $REV $REPOS)
  5. DATE=$(svnlook date -r $REV $REPOS)

  6. {
  7.     echo "REPOSITORY: $REPOS"
  8.     echo "REVISION: $REV"
  9.     echo "COMMITTED BY: $AUTHOR"
  10.     echo "DATE: $DATE"

  11.     echo ""
  12.     echo "DESCRIPTION:"
  13.     svnlook log -r $REV $REPOS

  14.     echo ""
  15.     echo "FILES:"
  16.     svnlook changed -r $REV $REPOS

  17. } | mail -s "PerfPortal Check In Rev $REV by $AUTHOR" "somebody@abc.com"

阅读(2894) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~