预提交 Windows 挂钩以在评论中要求问题编号

Pre-Commit Windows Hook to Require Issue Number in Comment

我正在寻找一种方法来拒绝在评论中缺少错误问题编号的提交。我正在设置的系统在 Windows Server 2012 上使用 VisualSVN Server,在 LAMP 服务器上使用 MantisBT 进行错误跟踪。这个问题是 asked before,但那个案例中的存储库在 LAMP 服务器上。我正在寻找不依赖于 PHP 或编译代码的批处理或 PowerShell 脚本。理想情况下,挂钩需要 "issue #1234" 或 "issues #12 and #34" 出现在提交消息中的某处。

基于this batch file

此块之后:

setlocal enabledelayedexpansion

set REPOS=%1
set TXN=%2

set SVNLOOK="%VISUALSVN_SERVER%\bin\svnlook.exe"

REM Concatenate all the lines in the commit message
FOR /F "usebackq delims==" %%g IN (`%SVNLOOK% log -t %TXN% %REPOS%`) DO SET M=!M!%%g

添加检查:

echo !M! | findstr /i /r /c:"issues* *#[0-9][0-9]*" >nul
if errorlevel 1 (
    echo "Sorry, commit message should reference an issue" >&2
    exit /b 1
)