我正在尝试通过使用SVNSync复制二手存储库(我这样做以确保其存储库的最佳用法只要其机器工作,但它似乎不起作用。

我有两台机器(我更改了名称,但没有其他Infos)

  • 初始:subversion 1.4.5(R25188)的自定义Linux(SVNADMIN报告)。从这台计算机中,我正在尝试在一个称为源的存储库上同步。可以使用HTTP协议访问此存储库,并创建了SVNSYNC用户。在 SOURCE/hooks, ,仅存在一个可执行文件: pre-revprops-change.
  • 最终:Ubuntu具有颠覆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和登录/PWD是正确的,这些URL似乎总是可以正常工作。

我正在尝试执行以下命令

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.

我猜某个地方存在某种配置问题。但是什么?然后在哪里?我已经达到了极限,在这里似乎没有任何帮助,因为我看到的各种文档建议使整个宇宙可执行的挂钩是一个有效的解决方案(在我的情况下不是什么)。

有帮助吗?

解决方案

原来我比哑巴笨。

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

它揭示了我的 pre-revprop-change 钩被错误地写成

"#!/bin/sh"
exit 0

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

其他提示

只需一点一点,以避免经常错误。

如果发生这种错误,请首先确保 预先变化 文件是可执行的。如果没有,请执行:

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

在哪里 $ dest_svn_repo - 通往目标存储库的路径。

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

您的目标配置失败。必须完成初始阶段(复制属性)。在revprops-change脚本中,您应该允许允许使用代码用户名更新。否则,目的地将被用户损坏。 SVN不能用作主动节点。通常,您配置挂钩脚本以防止用户进行任何修改。他们应该只能获得重新访问。

通常转到Superuser Web服务。这是不可能的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top