通过FTP将SVN存储库导出到远程服务器

时间:2012-06-26 08:37:12

标签: linux svn command-line ftp

我正在使用以下命令将我的存储库导出到本地路径:

svn export --force svn://localhost/repo_name /share/Web/projects/project_name

是否有任何相当简单的方式(Linux newbie here)通过FTP协议执行相同操作,将存储库导出到远程服务器?

svn export AFAIK的最后一个参数必须是本地路径,而AFAIK此命令不支持以URL形式提供路径,例如:

ftp://user:pass@server:path/

所以,我应该在这里聘请一些脚本来完成这项工作。

我已经向一些人询问过这个问题,并且被告知最简单的方法是将存储库导出到本地路径,将其传输到FTP服务器然后清除本地路径。不幸的是我在第一步后失败了(提取到本地路径!:)所以,支持问题是,如果它可以在运行中完成,或者真的必须分成两个步骤:export + ftp transfer?

有人还建议我在远程服务器上设置本地SVN客户端,并从我的存储库中进行简单的检出/更新。但只有当其他一切都失败时,这才是可行的解决方因为我想提取纯粹的存储库结构,没有SVN文件,我会得到这种方式。

BTW:我正在使用QNAP TS-210,这是一款简单的NAS设备,机载Linux非常有限。因此,许多与GUI一样好的命令行命令都无法使用。

编辑:这是我的“链条”中的第二个问题。即使如果你帮助我在这里取得成功,我也无法在没有你的帮助“SVN: Force svn daemon to run under different user”的情况下自动完成这项工作(我愿意)。有人也可以看一下吗?谢谢!

3 个答案:

答案 0 :(得分:3)

好吧,如果您使用的是Linux,那么您应该能够安装 ftpfs 。我相信Linux内核中有一个模块用于此。然后我想你也需要FUSE。

基本上,如果您可以安装 ftpfs ,则可以将svn导出直接写入已安装的文件夹。

答案 1 :(得分:3)

不确定FTP,但SSH会更容易,并且应该有更好的压缩。通过SSH发送repo的示例可能如下所示:

  

svnadmin dump / path / to / repository | ssh -C username @ servername'svnadmin -q load / path / to / repository / on / server'

网址我发现信息在Martin Ankerl's site

[更新]

基于@trejder对该问题的评论,要通过ssh进行导出,我的推荐如下:

svn在本地导出到文件夹,然后使用以下命令:

  

cd&& tar czv ​​src | ssh example.com'tar xz'

其中src是您导出的文件夹,example.com是服务器。

这将获取源文件夹中的文件,tar并gzip它们并通过ssh发送,然后在ssh上,将文件直接提取到机器....

答案 2 :(得分:1)

我曾经写过这篇文章 - 也许它会在这里有用:exup