【Windows】windows下svn强制写日志hook脚本增强版(空格过滤)

来源:互联网 发布:师洋淘宝一年赚 编辑:程序博客网 时间:2024/05/29 09:04

在软件开发中使用SVN进行源代码管理已非常普及,缺省情况下,SVN的每次commit是不需要日志log信息,为了便于管理,项目组通常会要求增加填写log习惯,可通过配置SVN的hook实现功能管理,通常的Windows下的强制log的hook脚本如下:

 @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

 goto :success
 :err_action
 echo 你本次版本提交未填写任何变更的日志说明信息.      >&2
 echo 请补充日志说明信息后再提交代码,例如:功能说明等.  >&2
 echo 输入的日志信息不少于8个字符说明(或4个汉字),谢谢! >&2
 goto :err_exit
 :err_exit
 exit 1
 :success
 exit 0

上述脚本虽然可以控制log信息输入,但其缺陷是:如果输入空格数据,如连续8个空格,这个脚本是不能过滤的,这样的结果还是log信息为空。上述增强型过滤空格数据脚本如下:

 @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

此增强型脚本在笔者的项目组中应用,功能正常,实现了空格过滤功能,请感兴趣的参考。

转自:http://blog.csdn.net/goldboar/article/details/7086964

原创粉丝点击