我正在将Subversion引入我们的网上商店。我希望通过FTP将签入的文件上传到服务器中(因为它们通过SFTP用于Subversion)。这些文件将发送到候选发布页面以进行测试。可以调用脚本将文件移动到生产环境中。
我的问题是:如何通过Subversion将文件传输到服务器?是否有我可以添加的脚本在签入文件时进行传输?
答案 0 :(得分:3)
您希望构建一个在SubVersion中使用post commit挂钩的脚本。您可以将脚本从存储库导出,然后将FTP导出到服务器,也可以从存储库签出到服务器上的工作目录,并在post-commit hook脚本中的服务器工作目录上调用“svn update”
答案 1 :(得分:3)
如果您拥有对服务器的shell访问权限,并且安装了SVN(或安装SVN的能力),那么您最好的选择可能就是完全绕过FTP。
我们如何部署应用程序(简化)
如果需要对服务器进行任何更改(或直接在实时服务器本身上进行),使用subversion来同步代码是微不足道的
答案 2 :(得分:2)
我认为您应该使用svn export而不是svn checkout进行部署,因此您没有那些.svn目录混淆了您的生产备份作业。 svn export是一个“干净”的结账。
我还会创建一个脚本来处理它。根据代码的结构,您可以经常对目录进行版本化,只需将符号链接更新到最新版本,这样可以更轻松地进行回滚。
您甚至可以使用Capistrano之类的内容来自动部署。不过我是对CruiseControl的推荐。
答案 3 :(得分:1)
我认为您正在寻找的东西就像是与自动构建脚本集成。我使用CruiseControl与ASP.Net应用程序做了类似的事情。我不知道你的具体要求,但我敢打赌,你可以做到你想做的事。
答案 4 :(得分:1)
提交后脚本对此很有用。基本上在每次提交时,在事件之后调用脚本,您可以使用该脚本执行svn导出到where-ever。
答案 5 :(得分:1)
您可以使用SVN“挂钩”来执行此操作。基本上,您可以将服务器配置为在每次签入之前或之后运行脚本。这是指向online book的相关部分的直接链接。
答案 6 :(得分:0)
我是第二个猎户座的主意。如果您有对服务器的shell访问权限,那么使用Subversion本身作为部署工具实际上非常容易。只需确保设置了一些Web服务器规则,以免意外暴露.svn目录。
答案 7 :(得分:0)
svn2web会在每次提交时将ftp或scp文件从subversion存储库传送到Web服务器。有关详细信息,请参阅SourceForge项目。