1.设置提交时必须填写说明
在项目仓库的钩子设置中,选择 pre-commit ,填入以下内容:
findstr "........" 匹配8个英文字符或4个中文字符。
可以使用正则表达式进行其他更复杂的检查。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@echo off setlocal set REPOS=%1 set TXN=%2 set SVNLOOK="C:\Program Files\VisualSVN Server\bin\svnlook.exe" rem check that logmessage should contains at least 10 characters %SVNLOOK% log %REPOS% -t %TXN% | findstr "........" > nul if %errorlevel% gtr 0 goto err exit 0 :err echo 请填写说明(至少4汉字)再提交! 1>&2 exit 1 |
2.按提交的注释内容,自动更新部署到服务器制定目录。
在post-commit钩子中填入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@echo off setlocal set REPOS=%1 set REV=%2 set SVNLOOK="C:\Program Files\VisualSVN Server\bin\svnlook.exe" set DIR=D:\TEST rem 当提交注释中包含“-测试”时,自动更新测试服务器IIS -注意需转义为 \- %SVNLOOK% log %REPOS% -r %REV% | findstr "\-测试" > nul if %errorlevel% gtr 0 goto end svn update %DIR% goto end :end exit 0 |
注意:svn update %DIR% 正常运行需将有svn库权限的用户设置为SVN服务启动账户。
另外post-commit钩子中,参数%2是正式版本号,所以是 %SVNLOOK% log %REPOS% -r %REV%
pre-commit钩子中是临时版本号,%SVNLOOK% log %REPOS% -t %REV%
参数%1为提交的仓库路径(服务器路径)。
可以配合注释检查,避免忘记加标记,在 pre-commit 中,填入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@echo off setlocal set REPOS=%1 set REV=%2 set SVNLOOK="C:\Program Files\VisualSVN Server\bin\svnlook.exe" rem 注释必须包含“-” %SVNLOOK% log %REPOS% -t %REV% | findstr "\-" > nul if %errorlevel% gtr 0 goto err exit 0 :err echo 注释必须包含“-”,“-测试” 自动部署到测试机,“-正式” 自动部署到正式机。 1>&2 exit 1 |