0

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

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

是否有任何非常简单的方法(这里是 Linux 新手)通过 FTP 协议执行相同操作,将存储库导出到远程服务器?

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

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

所以,我认为应该在这里雇用一些脚本来完成这项工作。

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

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

顺便说一句:我使用的是 QNAP TS-210,一个简单的 NAS 设备,板载的 Linux 非常有限。因此,我无法使用许多与 GUI 一样好的命令行命令。

编辑:这是我的“链”中的第二个问题。即使,如果你帮助我在这里取得成功,如果没有你的帮助,我将无法自动化这项工作(正如我愿意的那样)“ SVN:强制 svn 守护进程在不同的用户下运行”。请问有人也可以看看那里吗?谢谢!

4

3 回答 3

3

好吧,如果您使用的是 Linux,您应该能够挂载ftpfs。我相信 Linux 内核中有一个模块可以解决这个问题。那么我认为你还需要 FUSE。

基本上,如果您可以挂载ftpfs,则可以将 svn export 直接写入挂载的文件夹。

于 2012-06-26T09:12:17.487 回答
3

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

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

URL 我发现该信息在Martin Ankerl 的网站上

[更新]

根据@trejder 对该问题的评论,要通过 ssh 进行导出,我的建议如下:

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

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

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

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

于 2012-06-26T09:12:43.227 回答
1

我前段时间写了这个——也许在这里会有一些用处:exup

于 2015-10-05T11:32:19.657 回答