在Windows服务器上解决SVN不允许修改日志说明的问题

昨天,我想在SVN上修改一个文件的注释,但提交时提示:

DAV request failed; it's possible that the repository's pre-revprop-change hook 

either failed or is non-existent At least one property change failed; repository is uncahnaged 

Error setting property "log":

Repository has not been enabled to accept revision propchanges;

ask the administrator to create a pre-revprop-change hook

 google了一下,有两种解决办法。

第一种是直接在svn服务器上的工程库目录下 hooks 目录下新建一个空的 pre-revprop-change.bat即可,这样就好象没有对修改权限进行限制,如果是个人使用的服务器,可以这样处理,如果是项目组中使用,则建议采用下面的方法。

第二种方法跟第一种一样,新建一个pre-revprop-change.bat文件,然后把下面的内容粘贴到该文件中:

@ECHO OFF    
:: 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    
    
:ERROR_EMPTY    
echo Empty svn:log messages are not allowed. >&2    
goto ERROR_EXIT    
    
:ERROR_PROPNAME    
echo Only changes to svn:log messages are allowed. >&2    
goto ERROR_EXIT    
    
:ERROR_ACTION    
echo Only modifications to svn:log revision properties are allowed. >&2    
goto ERROR_EXIT    
    
:ERROR_EXIT    
exit /b 1   

至于在Linux/Unix上,则可以复制  hooks 目录下的 pre-revprop-change.tmpl 为 pre-revprop-change.sh,然后根据实现需要做相应修改即可。

猜你喜欢

转载自sheng.iteye.com/blog/1219735