0

我需要在远程 FTP 服务器上设置一个工作副本(使用 TortoiseSVN 客户端)。

直接签出似乎不支持 ftp://... 位置作为目标文件夹,将远程文件夹映射到驱动器号允许执行签出,但文件实际上并未复制到指定的目标文件夹。

这甚至可能吗?如何?(到目前为止,我发现帖子表明它是,它不是......)

4

2 回答 2

1

此方法使用过多的带宽、服务器空间和时间来通过 FTP 传输数据的多个副本。FTP 本身是不安全的,因此如果这是面向公众的,您将面临安全风险。服务器上也可能存在权限问题,SQLite(被工作副本库广泛使用)在这种模式下可能无法正常工作。

此外,您依赖于用户手动执行此操作,并在其 PC 上使用映射驱动器。如果需要更新时该用户不在身边,会发生什么?

如果不需要维护从 FTP 服务器到存储库的连接,最好使用 CI 系统甚至是简单的提交后挂钩脚本在提交后更新 FTP 服务器的内容。如果您使用 rsync,则只需传输已更改的位。

于 2013-05-28T17:14:21.320 回答
0

不确定我是否完全理解这个问题,但听起来你想将所有上传到 FTP 服务器的文件推送到 SVN 中?如果是这样,并且如果您在服务器上运行 Linux/Unix,请查看FSVS

然后,您可以使用脚本进行设置,以使用简单的 bash 脚本自动将 FTP 文件夹推送到 SVN 服务器:

#!/bin/sh
# Only executes FSVS if FSVS reports outstanding changes

FSVS_CONF=~/.fsvs-conf
FSVS_WAA=~/.fsvs-waa
export FSVS_CONF FSVS_WAA

cd /var/ftp

FCOUNT=`/usr/local/bin/fsvs | grep -v 'dir.*\.$' | wc -l`

if [ $FCOUNT -gt 0 ] ; then
    /usr/local/bin/fsvs ci -m "Automatic FSVS snapshot"
else
    echo "Nothing changed"
fi
于 2013-05-31T18:04:10.937 回答