pre-revprop-change

Enabling SVN log message editing

Subversion, by default will stop you from editing a log message after its been committed. This is because SVN has a powerful feature called ‘hooks’ that enable the repo administrator to control the message logs when their developers are committing.

Fortunately, if you have access to the repo, you can switch off the hook that stops this.

The process is to copy the ‘template’ hook as a proper hook and de-activate it.

SSH into the server and go to the SVN repo folder (as sudo)

sudo su
cd /home/svn/codebase
cp hooks/pre-revprop-change.tmpl hooks/pre-revprop-change

Then, edit the hooks/pre-revprop-change file. All you need to do is stick this at the top of the file:

exit 0

The above command will return a success message to the SVN repo and every change will be allowed.

And every log message change will be accepted. Now, be warned that this will allow people to piss about and change their messages ‘after the fact’ and you won’t have any control over it. But if you work in a small trustworthy team like me, then its not such a biggie.

Just FYI, the command for changing an SVN log message is :

svn propset -r <revision> --revprop svn:log "<enter your new log message here>"

Note: You do not need to specify the SVN URL if you perform this command from within your SVN working copy.

If your message is a simple edit or you want to write loads, you can leave off the message and it will open a text editor with the existing message in, and when you save and quit, it will update the message with what ever is in the file. Like so:

svn propedit -r <revision> --revprop svn:log