颠覆和网络开发

时间:2008-08-18 03:33:14

标签: svn ftp

我正在将Subversion引入我们的网上商店。我希望通过FTP将签入的文件上传到服务器中(因为它们通过SFTP用于Subversion)。这些文件将发送到候选发布页面以进行测试。可以调用脚本将文件移动到生产环境中。

我的问题是:如何通过Subversion将文件传输到服务器?是否有我可以添加的脚本在签入文件时进行传输?

8 个答案:

答案 0 :(得分:3)

您希望构建一个在SubVersion中使用post commit挂钩的脚本。您可以将脚本从存储库导出,然后将FTP导出到服务器,也可以从存储库签出到服务器上的工作目录,并在post-commit hook脚本中的服务器工作目录上调用“svn update”

There's more information in the Subversion FAQ

答案 1 :(得分:3)

如果您拥有对服务器的shell访问权限,并且安装了SVN(或安装SVN的能力),那么您最好的选择可能就是完全绕过FTP。

我们如何部署应用程序(简化)

  • 开发人员编写代码并将其检入trunk
  • 当主干稳定时,我们会将其快照作为标记
  • 在服务器上,svn签出标签

如果需要对服务器进行任何更改(或直接在实时服务器本身上进行),使用subversion来同步代码是微不足道的

答案 2 :(得分:2)

我认为您应该使用svn export而不是svn checkout进行部署,因此您没有那些.svn目录混淆了您的生产备份作业。 svn export是一个“干净”的结账。

我还会创建一个脚本来处理它。根据代码的结构,您可以经常对目录进行版本化,只需将符号链接更新到最新版本,这样可以更轻松地进行回滚。

您甚至可以使用Capistrano之类的内容来自动部署。不过我是对CruiseControl的推荐。

答案 3 :(得分:1)

我认为您正在寻找的东西就像是与自动构建脚本集成。我使用CruiseControl与ASP.Net应用程序做了类似的事情。我不知道你的具体要求,但我敢打赌,你可以做到你想做的事。

答案 4 :(得分:1)

提交后脚本对此很有用。基本上在每次提交时,在事件之后调用脚本,您可以使用该脚本执行svn导出到where-ever。

一个有趣的article显示了如何做到这一点,this显示了如何将钩子脚本与subversion一起使用

答案 5 :(得分:1)

您可以使用SVN“挂钩”来执行此操作。基本上,您可以将服务器配置为在每次签入之前或之后运行脚本。这是指向online book的相关部分的直接链接。

答案 6 :(得分:0)

我是第二个猎户座的主意。如果您有对服务器的shell访问权限,那么使用Subversion本身作为部署工具实际上非常容易。只需确保设置了一些Web服务器规则,以免意外暴露.svn目录。

答案 7 :(得分:0)

svn2web会在每次提交时将ftp或scp文件从subversion存储库传送到Web服务器。有关详细信息,请参阅SourceForge项目。