解决svn的一个小问题:添加注释钩子echo中文字符

首先介绍一下svn添加注释钩子的过程
增加钩子的原因是不少开发员提交修改的时候都不写注释,导致查看历史时很费劲,也不太符合规范。有的公司要求每次提交修改时都写上bug号或者任务描述,那么如何在工具上防止开发员们不写注释呢?
 那就是
利用svn的pre-commit钩子可简单实现此要求
进入仓库project/hooks目录,找到pre-commit.tmpl文件,重命名,去掉后缀.tmpl。
编辑pre-commit文件,将: 
$SVNLOOK log -t "$TXN" "$REPOS" | 
   grep "[a-zA-Z0-9]" > /dev/null || exit 1 
commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1 
这三行注释掉(前面加#符号),在此位置添加如下几行:
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` 
if [ "$LOGMSG" -lt 5 ];#要求注释不能少于5个字符,您可自定义 
then 
  echo -e "nLog message cann't be empty! you must input more than 5 chars as comment!." 1>&2 
  exit 1 
fi
保存,退出。
给pre-commit添加可执行权限: 
chmod +x pre-commit

配置结束,可以使用了。
当有人提交的时候如果不叫注释,就会报上面的“ nLog message cann't be empty! you must input more than 5 chars as comment!.
但是啊,好多人的英文真是有的鄙视,我自己也是,那换成中文字符可行否
这时候需要看你的检出方式来,如果你是采用svn的方式检出即svn://。。。检出的,那只需要更改将上述的
  echo -e "nLog message cann't be empty! you must input more than 5 chars as comment!." 1>&2 
echo出的内容改成中文就可以了
但如果是http方式检出,就需要做相应更改了,通过勤劳的手指,最后还是找到解决方式了:

修改http配置文件
把apache的配置文件里AddDefaultCharset UTF-8改为AddDefaultCharset zh_CN.UTF-8
重启,搞定
附上解决问题的原地址:
http://www.subversion.org.cn/bbs/archiver/?tid-2411.html

你可能感兴趣的:(SVN,钩子,pre-commit;)