Subversion: Repository Has Not Been Enabled To Accept Revision Propchanges

Last night I set up Subversion on my main development machine, which is running Vista. To do this, I followed the steps outlined by Jeff Atwood on his Coding Horror blog. His article was very helpful – it allowed me to install Subversion rather painlessly, despite the few HTML glitches I encountered in his instructions.

This morning, I opened the “Show log” page for a particular file using TortoiseSVN, and noticed one of the revisions I checked in was missing a comment. I right-clicked it, and selected “Edit log message”, wanting to add a comment then and there.  A little text editor popped up, and I typed the message. After I pressed OK, I was hit with this:

Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook

“Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook”

Solution

To correct this, I needed to create a file in the “hooks” folder of my Subversion repository. On my system, it was located at C:\svn\repository\hooks. I created a file called “pre-revprop-change.bat”, and I set the contents to this:

rem Only allow log messages to be changed.
if “%4” == “svn:log” exit 0
echo Property ‘%4’ cannot be changed >&2
exit 1

This solution was suggested in the TortoiseSVN documentation.

After saving the file with those contents, I was able to edit the revision comments without encountering the error message.

See Also

TortoiseSVN Users Mailing List: RE: Labels and Comments

TortoiseSVN Documentation: Server side hook scripts

  • Dan

    Hey, thanks! That fixed the same error message for me.

  • moylop260

    Hola, muchas gracias amigo
    Esto para mi, fue muy util.

  • Scott

    Awesome — a dev just asked to be able to allow this. Found it on my first Google result. Works great!

  • kishorfarm

    Great information. Thanks.

  • Ken

    Thanks so much! Nice quick fix!

  • Tim

    I had the same problem with editing log messages in TortoiseSVN. Your solution solved it. Many thanks!

  • Pingback: SVN#04: Edit log message–> Repository has not been enabled to accept revision propchange « Trinhvanchung's Weblog()

  • Caio

    worked like a charm. cheers.

  • Benmiller86+randomtechblog

    AMAZING! i wish all my issues could be solved with solutions that were so easy to find!

  • Leonardo Correia

    Brilliant! Works well, but I do have a question though.
    In a scenario with various repositories. Is there a way to put this file automatically there each time a new repository is created?

    • I agree, that’d be an ideal way to fix it. Unfortunately, I’m still fairly new to Subversion, so I don’t know how one would approach this.

  • PBD

    Worked great! Thanks.

  • Sebastocrator

    Old post but still worked for me. If only all solutions were that easy to find! Thanks!

  • armadillo.mx

    Great, Worked!
    I put those lines in the proper hook tab under Visual SVN

  • disqus_pYlT0y9Jr3

    If you are running on linux make sure you have the user execute chmod option put on the script file!

  • info

    The code didn’t work for me as-is. It seems to explicitly “forbid” changes to the Log Message. Here’s my revised code:

    rem Only allow log messages to be changed.

    if NOT “%4? == “svn:log” exit 0

    echo Property ‘%4′ cannot be changed >&2

    exit 1

  • Jimmy Navarro Castro

    Thanks so much!!

  • Paul

    Thanks, it worked!

  • Thomas Heinrich Schmidt

    I added some more lines to aid debugging (and future extension rules)


    rem https://mattrefghi.com/blog/solutions/subversion/subversion-repository-has-not-been-enabled-to-accept-revision-propchanges/
    set logfile="C:SVN-PRE-REVPROP-CHANGE-HOOK.log"
    echo -------------------------------------------------->> %logfile%
    echo Running ...SVNhookspre-revprop-change.bat [%time% %date%] >> %logfile%
    echo %%1=%1 %%2=%2 %%3=%3 %%4=%4 %%5=%5 >> %logfile%
    set REPOS="%1"
    set REV="%2"
    set USER="%3"
    set PROPNAME="%4"
    set ACTION="%5"
    echo REPOS=%REPOS% REV=%REV% USER=%USER% PROPNAME=%PROPNAME% ACTION=%ACTION% >> %logfile%
    rem Only allow log messages to be changed.
    if %PROPNAME%=="svn:log" (
    echo PROPNAME=svn:log - so changes allowed! >> %logfile%
    exit 0
    ) else (
    echo PROPNAME=%PROPNAME% != "svn:log" - so changes NOT allowed! >> %logfile%
    echo Property ‘%PROPNAME%’ cannot be changed >&2
    echo Changing revision properties other than svn:log is prohibited >>&2
    exit 1
    )