Subversion边缘svnsync:DAV请求失败&;预转桨更改错误

Subversion边缘svnsync:DAV请求失败&;预转桨更改错误,svn,svn-hooks,svnsync,subversion-edge,Svn,Svn Hooks,Svnsync,Subversion Edge,作为迁移练习的一部分,我在Windows上设置了Subversion边缘服务器。 目前我正在与svnsync进行斗争。 尝试执行命令时(在主服务器上): 它给了我以下两个错误: svnsync: E175002: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent 及 我尝试了几个不同的pre-revprop变更挂钩,

作为迁移练习的一部分,我在Windows上设置了Subversion边缘服务器。 目前我正在与svnsync进行斗争。
尝试执行命令时(在主服务器上):

它给了我以下两个错误:

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

我尝试了几个不同的pre-revprop变更挂钩,但没有成功,包括
“exit/b1”
。我也尝试过,如果这是一个权限问题(更改了服务运行时使用的用户,并确保该帐户可以访问所有必要的文件)
有人知道如何解决(或绕过)这个问题吗?

必须是
退出0
,而不是
退出1
,请参见:

钩子必须实际存在,并在 可以进行修订属性修改

例如,将
exit 0
放入目标存储库的 预转桨更换挂钩。但是,通过这种方式,任何经过身份验证和授权的用户都可以更改修订属性。我想那不是你想要的

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

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

exit 1
goto :eof

:label1
exit 0

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

并检查该帐户(例如您案例中的“svnsync”)是否具有对目标回购的写入权限

svnsync: E175002: Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook
IF "%3" == "svnsync" (goto :label1) else (echo "Only svnsync user can change revision properties" >&2 )

exit 1
goto :eof

:label1
exit 0