Edit SVN logs after committed

Published on Friday, January 7, 2011

You might want to edit log after you committed code using SVN, but you might see the following error screen:

All you need to do is create a pre-revprop-change hook.

IF your SVN server is not VisualSVN, then you try to copy the following code and save the file as “pre-revprop-change.bat” and throw it in the hooks directory. IF you use VisualSVN, you can set the following code into pre-revprop-change hook setting:

Right click the project name in VisualSVN -> All Tasks -> Manage Hooks…

:: Set all parameters. Even though most are not used, in case you want to add
:: changes that allow, for example, editing of the author or addition of log messages.
set repository=%1
set revision=%2
set userName=%3
set propertyName=%4
set action=%5

:: Only allow the log message to be changed, but not author, etc.
if /I not "%propertyName%" == "svn:log" goto ERROR_PROPNAME

:: Only allow modification of a log message, not addition or deletion.
if /I not "%action%" == "M" goto ERROR_ACTION

:: Make sure that the new svn:log message is not empty.
set bIsEmpty=true
for /f "tokens=*" %%g in ('find /V ""') do (
set bIsEmpty=false
if "%bIsEmpty%" == "true" goto ERROR_EMPTY

goto :eof

echo Empty svn:log messages are not allowed. >&2

echo Only changes to svn:log messages are allowed. >&2

echo Only modifications to svn:log revision properties are allowed. >&2

exit /b 1