如何从svn commit的日志消息中剪切bug id,并从precommit hook中的可用id列表中验证它

如何从svn commit的日志消息中剪切bug id,并从precommit hook中的可用id列表中验证它,svn,pre-commit,svnlook,Svn,Pre Commit,Svnlook,我想从提交日志消息中剪切一个字符串(BUGID),然后从可用BUGID列表(文本文件)中验证它,如果该id无效,那么预提交钩子应该阻止该提交。 例如: 文件添加 缺陷ID:12345 我想从日志消息中剪切“缺陷ID:12345”,并想从位于SVN位置的文本文件中进行验证。 我正在使用windows,需要在bat文件中编写预提交钩子。 我试着跟随,但它不工作。我没有得到任何输出。请帮助 For /F "delims=" %%I in (`svnlook log %REPOS% -t %TXN%`)

我想从提交日志消息中剪切一个字符串(BUGID),然后从可用BUGID列表(文本文件)中验证它,如果该id无效,那么预提交钩子应该阻止该提交。 例如:

文件添加 缺陷ID:12345

我想从日志消息中剪切“缺陷ID:12345”,并想从位于SVN位置的文本文件中进行验证。 我正在使用windows,需要在bat文件中编写预提交钩子。 我试着跟随,但它不工作。我没有得到任何输出。请帮助

For /F "delims=" %%I in (`svnlook log %REPOS% -t %TXN%`) Do (Set Message=!Message!%%I)
rem Make sure that the log Message contains some text.
echo "%Message%" 1>&2
echo "%Message%" | FindStr [a-zA-Z0-9] >nul
IF %ERRORLEVEL% NEQ 0 (GOTO COMMENT_NOT_OK) else GOTO OK
:COMMENT_NOT_OK
echo COMMENT_NOT_OK 1>&2
echo Your commit has been blocked because you didn't provide adequate 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
if %DEBUG% EQU 1 GOTO EXITDEBUG
exit 1
:OK
if %DEBUG% EQU 1 GOTO EXITDEBUG
exit 0
:EXITDEBUG
echo == EXITDEBUG == 1>&2
exit 0

参考链接:

在这里,您是在验证BUGID吗?你尝试了什么,你有什么错误?或者你只是想有人为你写代码?我没有得到任何错误。为了你的帮助,我在上面发布了我的代码。我正在验证预提交钩子中的bugid。