【问题标题】:Subversion Edge svnsync: DAV request failed & pre-revprop-change errorSubversion Edge svnsync:DAV 请求失败和 pre-revprop-change 错误
【发布时间】:2015-03-26 20:16:46
【问题描述】:

作为迁移练习的一部分,我在 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"。我也尝试过是否是权限问题(更改了服务用来运行的用户并确保该帐户可以访问所有必要的文件) 有谁知道如何解决(或解决)这个问题?

【问题讨论】:

    标签: svn svn-hooks svnsync subversion-edge


    【解决方案1】:

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

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

    例如,将exit 0 放到目标存储库的 pre-revprop-change-hook。但是,通过这种方式,任何经过身份验证和授权的用户都可以更改修订属性。我猜这不是你想要的。

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-02
        • 2012-05-30
        • 1970-01-01
        • 2013-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多