Subversion Edge svnsync:DAV请求失败& pre-revprop-change错误

时间:2014-06-10 12:54:50

标签: svn svn-hooks svnsync subversion-edge

我在Windows上设置了Subversion Edge服务器,作为迁移练习的一部分。 目前我正在努力使用svnsync 尝试执行命令时(在主服务器上):

svnsync initialize https://main.subversion.server/svn/main.svn https://mirror.subversion.server/svn/main.svn --disable-locking --username=svnsync --password=SubversionEdge

它给了我以下2个错误:

svnsync: E175002: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent  

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

我尝试了几种不同的pre-revprop-change挂钩,但没有任何成功,包括"exit /b 1"。我也试过,如果它是一个权利问题(服务用来运行的更改用户,并确保该帐户可以访问所有必要的文件) 有没有人知道如何解决(或绕过)这个?

2 个答案:

答案 0 :(得分:1)

必须是exit 0,而不是exit 1,请参阅SVNBook | pre-revprop-change hook reference

  

钩子必须实际存在,并在a之前返回零退出值   修订属性修改可能发生。

例如,将exit 0放入目标存储库就足够了 的pre-revprop变化挂机。但是,这样任何经过身份验证和授权的用户都可以更改修订版我想,这不是你想要的。

您可以在钩子脚本中实现某些逻辑,以便只允许' svnsync'用户更改修订版属性:

IF "%3" == "svnsync" (goto :label1) else (echo "Only svnsync user can change revision properties" >&2 )

exit 1
goto :eof

:label1
exit 0

答案 1 :(得分:0)

对于Windows,请使用pre-revprop-change-hook.bat

并检查帐户(例如您的情况下的“svnsync”)是否具有目标仓库的写入权限。

相关问题