svnsync无法正常工作:Revprop更改被pre-revprop-change挂钩阻止

时间:2010-08-23 07:33:39

标签: svn svnsync

我正在尝试使用svnsync复制已使用的存储库(我这样做是为了确保我的存储库的最佳使用,只要它的机器正常工作)但它似乎不起作用。

我有两台机器(我已更改名称,但不更改其他信息)

  • INITIAL:使用Subversion 1.4.5(r25188)定制Linux(由svnadmin报告)。从这台机器,我正在尝试在名为SOURCE的存储库上同步。可以使用http协议访问此存储库,并且已创建svnsync用户。在SOURCE/hooks中,只存在一个可执行文件:pre-revprops-change
  • FINAL:Ubuntu与Subversion 1.6.6(r40053)(由svnadmin报告)。在这台机器上,我将在名为svn16的存储库上同步。可以使用http协议访问此存储库,并且已创建svnsync用户。在svn16/hooks中,可执行文件为pre-revprop-changestart-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.

我想某处存在某种配置问题§。但是什么?在哪里?我已达到极限,网络似乎没有任何帮助,因为我看到的各种文档建议使整个Universe可执行的钩子是一种有效的解决方案(在我的情况下不是这样)。

3 个答案:

答案 0 :(得分:14)

原来我是笨蛋而不是笨蛋。

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

它显示我的pre-revprop-change挂钩错误地写了

"#!/bin/sh"
exit 0

显然,删除"解决了问题。

答案 1 :(得分:12)

只是一点注意,以避免经常出错。

如果出现此类错误,请首先确保 pre-revprops-change 文件是可执行的。 如果没有,请执行:

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

其中 $ DEST_SVN_REPO - 目标存储库的路径。

答案 2 :(得分:1)

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

您的目标配置失败。必须完成INIT阶段(复制属性)。 在pre-revprops-change脚本内部,您应该编写允许更新的用户名。 否则目的地将被用户损坏。 svn无法作为主动 - 主动节点工作。 通常您配置钩子脚本以防止用户进行任何修改。他们应该只获得reaad access。

一般去超级用户网络服务。这是不可能的。