svnbatch-filevisualsvn-serversvn-hooks

VisualSVN pre-commit rule


Using this hook with VisualSVN Server, added to the Repository/hooks folder as pre-commit.bat.

My question is how do I add the rule that a comment must always start with a numeric value? I want the first part of the comment to always be the issue number from a bug tracker. Eg. "123 - this commit fixes issue 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

Solution

  • Try following regular expression:

    findstr "^[0-9]"
    

    I.e.

    svnlook log %REPOS% -t %TXN% | findstr "^[0-9] > nul
    if %errorlevel% gtr 0 (goto err) else exit 0