Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn Subversion与web开发_Svn_Ftp - Fatal编程技术网

Svn Subversion与web开发

Svn Subversion与web开发,svn,ftp,Svn,Ftp,我正在把Subversion引入我们的网络商店。我想让签入的文件通过FTP上传到服务器上(当它们使用Subversion时,通过SFTP)。出于测试目的,这些文件被发送到发布候选页面。可以调用脚本将文件移动到生产环境中 我的问题是:如何通过Subversion将文件传输到服务器?是否可以添加一个脚本,以便在签入文件时进行传输?我认为您需要的是与自动生成脚本的集成。我曾经用ASP.Net应用程序做过类似的事情。我不知道您的具体要求,但我敢打赌您可以让它做您想要的事情。提交后脚本对此很有用。实际上,

我正在把Subversion引入我们的网络商店。我想让签入的文件通过FTP上传到服务器上(当它们使用Subversion时,通过SFTP)。出于测试目的,这些文件被发送到发布候选页面。可以调用脚本将文件移动到生产环境中


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

我认为您需要的是与自动生成脚本的集成。我曾经用ASP.Net应用程序做过类似的事情。我不知道您的具体要求,但我敢打赌您可以让它做您想要的事情。

提交后脚本对此很有用。实际上,在每次提交时,都会在事件后调用脚本,您可以使用它执行svn导出到任何地方


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

您可能可以使用SVN“钩子”来做到这一点。基本上,您可以将服务器配置为在每次签入之前或之后运行脚本。这里是到的相关部分的直接链接。

您想要构建一个在SubVersion中使用post-commit钩子的脚本。您可以将脚本从存储库导出,然后通过FTP传输到服务器,也可以从存储库签出到服务器上的工作目录,并在提交后钩子脚本中的服务器工作目录上调用“svn更新”


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

我们部署应用程序的方式(简化)

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

如果需要对服务器(或直接在实时服务器上)进行任何更改,那么使用subversion同步代码就很简单了。如果您拥有对服务器的shell访问权,那么使用Subversion本身作为部署工具实际上非常容易。只需确保设置了一些web服务器规则,以免意外地公开.svn目录。

我认为您可能应该使用svn导出而不是svn签出进行部署,这样您就不会让那些.svn目录弄乱生产备份作业。svn导出是一种“干净”的签出

我还将创建一个脚本,为您处理这一切。根据代码的结构,您通常可以对目录进行版本设置,只需将符号链接更新为最新版本,这使得回滚更容易


您甚至可以使用类似的工具来自动化部署。不过,我支持CruiseControl的建议。

每次提交时,svn2web都会将subversion存储库中的ftp或scp文件发送到web服务器。有关详细信息,请参见项目