0

我正在尝试从集群中导入目录并创建本地中继。我正在尝试使用 svn+ssh 来执行此操作。

svn import svn+ssh://user@cluster:/path/to/file file:///path/to/svn/repo/trunk -m "Initial import from cluster"
svn: 'svn+ssh://user@cluster:/path/to/file' does not exist

这个命令有问题吗?为了澄清有关连接的任何初始问题,我可以使用 ssh 登录集群而不会出现任何问题,并且文件路径是正确的。本地存储库正在工作并且其中有其他分支,我在本地提交。

4

1 回答 1

0

首先,您不需要 : 在您的 svn+ssh:// URL 上的 user@cluster 之后。

其次,您不能使用 import 从一个存储库复制到另一个存储库。

我推荐 svnrdump 或 svnsync 来完成这个任务。

要使用 svnsync,您需要执行以下操作:

svnadmin create repo
echo '#!/bin/sh' > repo/hooks/pre-revprop-change
echo 'exit 0' >> repo/hooks/pre-revprop-change
chmod a+x repo/hooks/pre-revprop-change
svnsync init file://`pwd`/repo svn+ssh://user@cluster/path/to/repo
svnsync sync file://`pwd`/repo

或者使用 svnrdump:

svnadmin create repo
svnrdump svn+ssh://user@cluster/path/to/repo | svnadmin load repo

如果您想继续在本地保留存储库的镜像,svnsync 可能是最好的方法,因为您以后可以运行同步命令来更新存储库以匹配另一端。请注意,向本地存储库提交其他更改将破坏继续执行此操作的能力。您可以在此处阅读有关 svnsync 的更多信息:http: //svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.replication

svnsync 方向假定一个 unix 环境。如果您在 Windows 上,您可能需要用 bat 文件替换有关 pre-revprop-change 挂钩的部分。您可以在这里找到一些详细信息: 什么是 SVN 中的 pre-revprop-change 挂钩,以及如何创建它?

如果您只想分叉存储库并在本地单独处理它,svnrdump 可能会更好。您可以在此处阅读有关 svnrdump 的更多信息:http: //svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate.svnrdump

理想情况下,我们会更好地支持跨存储库合并,这可能更符合您实际寻找的内容,但我没有一个好的解决方案。有一种相当可怕的方法来做供应商分支: http ://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html

于 2013-08-23T07:06:23.483 回答