我需要在远程FTP服务器上设置工作副本(使用TortoiseSVN客户端)。
直接结帐似乎不支持ftp:// ...位置作为目标文件夹,将远程文件夹映射到驱动器号允许执行签出但文件实际上并未复制到指定的目标文件夹。 / p>
这甚至可能吗?怎么样? (到目前为止,我发现帖子表明它是,而不是......)
答案 0 :(得分:1)
此方法使用过多的带宽,服务器空间和是时候通过FTP传输多个数据副本了。 FTP本身就是不安全的,所以如果这是面向公众的,你就会面临安全风险。服务器上可能还存在权限问题,并且SQLite(工作副本库广泛使用)在此模式下可能无法正常工作。
此外,您依赖于用户手动执行此操作,并在其PC上使用映射驱动器。如果在需要更新时该用户不在身边,会发生什么?
如果不需要维护从FTP服务器到存储库的连接,最好使用CI系统甚至是简单的提交后挂钩脚本来在提交后更新FTP服务器的内容制作。如果使用rsync,则只需传输已更改的位。
答案 1 :(得分: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