svn服务端强制注释配置方法
[size=xx-small]利用svn的pre-commit钩子可简单实现此要求:[/size]
进入仓库的hooks目录下(如:project1/hooks),找到pre-commit.tmpl文件,重命名:windows环境下修改为pre-commit.bat ,Linux环境下修改为pre-commit。
Windows环境:(已测试)
用记事本打开pre-commit.bat文件,编辑如下脚本(保存即生效,不用重启服务)
提示信息可修改
@echo off setlocal set REPOS=%1 set TXN=%2 rem 保证输入8个字符 svnlook log %REPOS% -t %TXN% | findstr "........" > nul if %errorlevel% gtr 0 goto :err_action rem 过滤空格字符svnlook log %REPOS% -t %TXN% | findstr /ic:" " > nul if %errorlevel% gtr 0 goto :success :err_action echo 你本次版本提交未填写任何变更的日志说明信息. >&2 echo 请补充日志说明信息后再提交代码,例如:功能说明等. >&2 echo 输入的日志信息不少于8个字符说明(或4个汉字),谢谢! >&2 echo *******************禁止空格数据***************** >&2 goto :err_exit :err_exit exit 1 :success exit 0
#!/bin/shREPOS="$1"TXN="$2"SVNLOOK=/usr/bin/svnlook# check that logmessage contains at least 10 alphanumeric charactersLOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`if [ "$LOGMSG" -lt 10 ]; #要求注释不能少于5个字符,可自定义,提示信息也可自定义thenecho -e "\nEmpty log message not allowed. Commit aborted!" 1>&2exit 1fi