在hooks里,创建如下文件pre-commit.bat: //以rem开头的都是注释 rem Make sure that the log massage contains some text. //定义两个全局参数用来判断用户输入的内容 set REPOS=%1 set TXN=%2 "C:\Program Files\CollabNet\Subverson server\SVNlook.exe"log -t %TXN% %REPOS% | FindStr [A-Z] //判断上一句命令是否成功执行,如果ERRORLEVEL值为0则成功否则失败,在这里 //如果成功则会直接跳到OK 节点进行执行 IF %ERRORLEVEL% EQU 0 GOTO OK echo 因为你提交了空的日志或者没有按照规定提交,所以提交被锁定 1>&2 echo 请提交符合规定的日志信息 1>&2 echo 如:NEW: 1>&2 echo DEV: 1>&2 echo REFINE: 1>&2 echo FIXBUG: 1>&2 echo MRG: 1>&2 echo 谢谢! 1>&2 exit 1 :OK rem --------------------------------------------------------- rem Check if comment is in list of reserved words to not be uesd.. rem --------------------------------------------------------- "C:\Program Files\CollabNet\Subverson server\SVNlook.exe"log -t %TXN% %REPOS% >c:\file.txt //这里是开启延迟变量开关,用来延长之前定义的变量的作用范围 setlocal enabledelayedexpansion rem FOR /F "delims=:"%%a IN (c:\file.txt) DO @echo %%a >c:\file.txt //查找当前内容中的每行是否都以一下定义的字符串开头 FINDSTR /b "NEW:DEV:REFINE:FIXBUG:MRG:"c:\file.txt //判断上句命令的反回值是否为成功(为0),如果成功直接跳到OK2节点 if %ERRORLEVEL%EQU 0 GOTO OK2 echo 因为你提交了空的日志或者没有按照规定提交,所以提交被锁定 1>&2 echo 请提交符合规定的日志信息 1>&2 echo 如:NEW: 1>&2 echo DEV: 1>&2 echo REFINE: 1>&2 echo FIXBUG: 1>&2 echo MRG: 1>&2 echo 谢谢! 1>&2 exit 1 :OK2 //启动批处理文件中环境变量的本地化 setlocal set REPOS=%1 set TXN=%2 rem check that logmassage contains at least 10 characters //这里查询文字内容的字符是否大于15个字符 svnlook log "%REPOS%" -t "%TXN%" | findstr"..............">nul //判断上句命令,如果成功则跳到err节点,说明上句命令条件成立,说明当前日志内容 //不够15个字符 if %errorlevel% gtr 0 goto err exit 0 :err echo 提交日志时必须大于十五个字符!>&2 exit 1 @pause > nul
SVN commit 规范设置
猜你喜欢
转载自eileenlml.iteye.com/blog/1539072
今日推荐
周排行