*自动发邮件脚本

配置post-commit文件   //此文件在commit时会运用到这个脚本
# cd /svndata/test/hooks
# cp post-commit.tmpl post-commit
# vi post-commit
在末尾删除原来的,添加上以下参数

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

/usr/bin/svnnotify --repos-path "$1" --revision "$2" --to windy@xxx.com --handler "HTML::ColorDiff" --with-diff --smtp mail.xxx.com --subject-prefix '[Windy SVN]' 
 

//--to windy@xxx.com为要通知的邮件地址,我们一般会做个邮件组,这个组内包含了这个项目的所有人,--smtp mail.xxx.com为你的内部邮件服务器地址,必须使用域名,要内部DNS能够解析到,可能需要在内部DNS服务器上手动添加主机记录,[Windy SVN]必须有SVN字段,否则将收不到邮件,注重格式,此脚本有bugzilla和JIRA系统进行整合的参数。

 

# chmod a+x post-commit   //添加可执行权限给post-commit

*可修改log脚本
配置pre-revprop-change文件   //此文件在show log中修改log时会运用到这个脚本,得到修改的权限,否则会报错DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent. At least one property change failed; repository is unchanged
# cd /svnroot/test/hooks
# cp pre-revprop-change.tmpl pre-revprop-change
# vi pre-revprop-change
在末尾删除原来的,添加上以下参数

EPOS="$1" 
REV="$2" 
USER="$3" 
PROPNAME="$4" 

if [ "$PROPNAME" = "svn:log" ]; then exit 0; fi 
exit 1 
 

# chmod a+x pre-revprop-change   //添加可执行权限给pre-revprop-change

 


*强制写log脚本
配置pre-commit文件   //此文件在用户每次更新库中都必须要求写log,此文以log最低5个字符为例
# cd /svnroot/test/hooks
# cp pre-commit.tmpl pre-commit
# vi pre-commit
在末尾删除原来的,添加上以下参数

REPOS="$1" 
TXN="$2" 
SVNLOOK=/usr/bin/svnlook 
# check that logmessage contains at least 5 alphanumeric characters 
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` 
if [ "$LOGMSG" -lt 5 ]; 
then 
  echo -e "\nEmpty log message not allowed. Commit aborted!" 1>&2 
  exit 1 
fi 

//[ "$LOGMSG" -lt 5 ] -lt 5这个5是至少为5个字符,请注意。
# chmod a+x pre-commit   //添加可执行权限给pre-commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 echo -e "\nLog message cann't be empty! you must input more than 10 chars as comment! Commit aborted!" 1>&2