windowssvntortoisesvnsvn-hookspre-commit

Windows Pre-commit hook for comment length Subversion


I seem to be getting nowhere with this. Either searching the web for a script, etc. Anyone got a script that you can just edit the out-of-box pre-commit.tmpl in a Windows environment that requires x chars to be entered in for a comment on commit in Tortoise Subversion globally so that all members on the team are required whereas this requirement is pushed down to the clients from SVN server?

I don't know the scripting language and this should be something pretty damn simple without me taking the time to figure out scripting for the next 3 hours.


Solution

  • This is a .bat file to require there is a comment. It checks for the existence of at least one character in the comment.

     @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           
    
     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 enter a comment. 1>&2  
     echo Write a log message describing the changes made and try again. 1>&2
     echo Thanks 1>&2
     exit 1
    

    This file sits in the /hooks folder of the repository, named pre-commit.bat. If you need a minimum amount of characters, the line to modify is

    svnlook log %REPOS% -t %TXN% | findstr . > nul
    

    So if you wanted a minimum of 10 characters, you need to have 10 .'s rather than just one

    svnlook log %REPOS% -t %TXN% | findstr .......... > nul
    

    More advanced options for the findstr command will let you do fancier checks (certain character sets, ect)