将此钩子与 VisualSVN Server 结合使用,作为 pre-commit.bat 添加到 Repository/hooks 文件夹中。
我的问题是如何添加评论必须始终以数值开头的规则?我希望评论的第一部分始终是错误跟踪器的问题号。例如。 “123 - 此提交修复了问题 123”
@echo off
::
:: Stops commits that have empty log messages.
::
@echo off
setlocal
rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2
rem check for an empty log message
svnlook log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
:err
echo. 1>&2
echo Your commit has been blocked because you didn't give any log message 1>&2
echo Please write a log message describing the purpose of your changes and 1>&2
echo then try committing again. -- Thank you 1>&2
exit 1
尝试以下正则表达式:
findstr "^[0-9]"
即
svnlook log %REPOS% -t %TXN% | findstr "^[0-9] > nul
if %errorlevel% gtr 0 (goto err) else exit 0
请参阅文章 KB140:在 VisualSVN Server 中验证提交日志消息 并使用选项
--regexp ARG
。在您的情况下,当您希望提交日志消息始终以数值开头时,请尝试 \d+
正则表达式值。
例如,像这样:
"%VISUALSVN_SERVER%\bin\VisualSVNServerHooks" check-logmessage ^
--regexp "\d+" ^
-t "%2" "%1"
IF ERRORLEVEL 1 echo Issue number must be specified. >&2 & exit /b 1