PHP SVN:将SVN标签部署到生产环境的最佳方式是什么?


PHP SVN: What's the best way to deploy svn tag to production?

将SVN标记部署到生产环境的最佳方式是什么?SVN switch还是SVN Checkout?使用SVN交换机会添加。SVN文件,可能会占用很大的存储空间,但使用起来方便、容易。

使用SVN Checkout将删除。SVN文件,并将其符号链接到新的Checkout文件夹。

SVN交换机和SVN签出部署到生产环境的优缺点是什么?哪个更容易和实用?对我来说是"SVN Checkout"的方式。

谢谢。


选项1:使用SVN SWITCH - SSH到生产服务器,然后像这样执行SVN SWITCH:

$ cd /var/www/html/sites/mydomain.com/
$ svn switch https://svn.svndomain.com/repos/mydomain.com/site/tags/4.11.0-qa1
// Reload Apache
$ /etc/init.d/httpd reload

选项2:USING SVN EXPORT - SSH到生产服务器,然后将SVN导出到一个带有version和符号链接的新文件夹,如下所示:

// Export Site
$ svn export https://svn.svndomain.com/repos/mydomain.com/site/tags/4.11.0 /var/www/html/sites/mydomain.com_4.11.0
$ cd /var/www/html/sites/;
$ unlink mydomain.com;
$ ln -s mydomain.com_4.11.0 mydomain.com;
// Reload Apache
$ /etc/init.d/httpd reload

使用svn checkout到一个新的空目录,以确保没有任何未提交的文件。然后使用svn export命令到一个新的空目录(或者手动删除所有的。svn目录)。然后用新文件替换web服务目录的旧内容,或者使用符号链接。.svn目录不能从外部访问。

我的web应用在部署之前通常需要一些构建过程。这个构建过程取代了svn导出阶段。