Sometimes a user will have an error in her log message (a
misspelling or some misinformation, perhaps). If the repository is
configured (using the pre-revprop-change
hook; see Implementing Repository Hooks) to accept changes to this log
message after the commit is finished, the user can “fix”
her log message remotely using svn propset (see
“svn propset” in Chapter 9). However, because of the potential to lose
information forever, Subversion repositories are not, by default,
configured to allow changes to unversioned properties—except by an
administrator.
If a log message needs to be changed by an administrator, this can
be done using svnadmin setlog.
This command changes the log message (the svn:log
property) on a given revision of a
repository, reading the new value from a provided file:
$ echo "Here is the new, correct log message" > newlog.txt $ svnadmin setlog myrepos newlog.txt -r 388
The svnadmin setlog command, by
default, is still bound by the same protections against modifying
unversioned properties as a remote client—the pre-
and post-revprop-change
hooks are still triggered
and therefore must be set up to accept changes of this nature. But an
administrator can get around these protections by passing the --bypass-hooks
option to
the svnadmin setlog command.
Remember, though, that by bypassing the hooks, you are likely avoiding such things as email notifications of property changes, backup systems that track unversioned property changes, and so on. In other words, be very careful about what you are changing and how you change it.