How to edit log message already committed in Subversion?

Essentially you have to have admin rights (directly or indirectly) to the repository to do this. You can either configure the repository to allow all users to do this, or you can modify the log message directly on the server.

See this part of the Subversion FAQ (emphasis mine):

Log messages are kept in the
repository as properties attached to
each revision. By default, the log
message property (svn:log) cannot be
edited once it is committed
. That is
because changes to revision properties
(of which svn:log is one) cause the
property’s previous value to be
permanently discarded, and Subversion
tries to prevent you from doing this
accidentally. However, there are a
couple of ways to get Subversion to
change a revision property.

The first way is for the repository
administrator to enable revision
property modifications. This is done
by creating a hook called
“pre-revprop-change” (see this section
in the Subversion book for more
details about how to do this). The
“pre-revprop-change” hook has access
to the old log message before it is
changed, so it can preserve it in some
way (for example, by sending an
email). Once revision property
modifications are enabled, you can
change a revision’s log message by
passing the –revprop switch to svn
propedit or svn propset, like either
one of these:

$svn propedit -r N --revprop svn:log URL 
$svn propset -r N --revprop svn:log "new log message" URL 

where N
is the revision number whose log
message you wish to change, and URL is
the location of the repository. If you
run this command from within a working
copy, you can leave off the URL.

The second way of changing a log
message is to use svnadmin setlog.
This must be done by referring to the
repository’s location on the
filesystem. You cannot modify a remote
repository using this command.

$ svnadmin setlog REPOS_PATH -r N FILE

where REPOS_PATH is the repository
location, N is the revision number
whose log message you wish to change,
and FILE is a file containing the new
log message. If the
“pre-revprop-change” hook is not in
place (or you want to bypass the hook
script for some reason), you can also
use the –bypass-hooks option.
However, if you decide to use this
option, be very careful. You may be
bypassing such things as email
notifications of the change, or backup
systems that keep track of revision
properties.

Leave a Comment