代码之家  ›  专栏  ›  技术社区  ›  Riduidel

svnsync不工作:Revprop更改被pre Revprop change hook阻止

  •  10
  • Riduidel  · 技术社区  · 15 年前

    我试图通过使用svnsync复制一个使用过的存储库(我这样做是为了确保存储库在机器工作时得到最佳利用),但它似乎不起作用。

    • 初始版本:带有Subversion 1.4.5(r25188)的定制Linux(由svnadmin报告)。在这台机器上,我正试图在一个名为SOURCE的存储库上进行同步。可以使用http协议访问此存储库,并且已经创建了svnsync用户。在 SOURCE/hooks ,仅存在一个可执行文件: pre-revprops-change
    • 最终版本:Ubuntu和Subversion 1.6.6(r40053)(据svnadmin报道)。在这台机器上,我将在名为svn16的存储库上同步。可以使用http协议访问此存储库,并且已经创建了svnsync用户。在 svn16/hooks pre-revprop-change start-commit . 在这台机器上, dav_svn.conf 包含指令 SVNParentPath /var/svn ,使所有存储库在 http://FINAL/svn

    通过在浏览器中打开每个存储库URL并发出验证对话框,我已经确保了URL和login/pwd的正确性,这看起来总是很有效的。

    我正在尝试执行以下命令

    svnsync initialize http://FINAL/svn/svn16 http://INITIAL/SOURCE
    

    Authentication realm: <http://FINAL:80> All Subversion Repositories hosted on FINAL
    Password for 'ubunut-user':
    Authentication realm: <http://FINAL.fr:80> All Subversion Repositories hosted on FINAL
    Username: svnsync
    Password for 'svnsync':
    svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
    svnsync: At least one property change failed; repository is unchanged
    svnsync: Error setting property 'sync-lock':
    Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.
    

    我猜在某个地方有某种配置问题§。但是什么?在哪里?我已经到了极限,而web在这里似乎没有任何帮助,因为我看到的各种文档都表明,让钩子在整个宇宙中都可执行是一个有效的解决方案(在我的例子中不是这样的)。

    3 回复  |  直到 15 年前
        1
  •  14
  •   Riduidel    15 年前

    原来我比哑巴还笨。

    在这种错误情况下,确保一切正常工作的最简单方法是手动调用各种钩子。

    它暴露了我的秘密 pre-revprop-change 钩子写得不正确

    "#!/bin/sh"
    exit 0
    

    " 解决了这个问题。

        2
  •  12
  •   Milkywayfarer    13 年前

    只是一个小提示,以避免经常出错。

    如果出现这种错误,首先要确保 预转道具更改 如果没有,执行:

    chmod +x $DEST_SVN_REPO/hooks/pre-revprops-change ,

    $DEST\u SVN\u回购 --目标存储库的路径。

        3
  •  1
  •   Znik    12 年前

    请看这里: https://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt

    目标配置失败。初始化阶段(复制属性)必须完成。 否则目的地将被用户破坏。svn不能作为活动节点工作。 通常配置钩子脚本以防止用户进行任何修改。他们应该只有reaad权限。

    通常转到超级用户web服务。这有点离题了。

    推荐文章