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


Linux环境(未测试)

    用Vi等编辑命令编辑文件pre-commit,编辑内容如下(编辑完成需要给该文件添加可执行权限:chmod +x pre-commit )

    提示信息可修改
#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook

# check that logmessage contains at least 10 alphanumeric characters
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`
if [ "$LOGMSG" -lt 10 ]; #要求注释不能少于5个字符,可自定义,提示信息也可自定义
then
echo -e "\nEmpty log message not allowed. Commit aborted!" 1>&2
exit 1
fi

你可能感兴趣的:(windows,linux,SVN,脚本)