【原创】使用SVN部署生产环境(已测)(欢迎指正)
详细内容请查看本人博客 www.thinkidea.net
欢迎高手批评指正!!!
这是我自己在纸上画的一个关于SVN+patch+rsync部署生产环境的图:
先看图:
我的思路是这样的:
1 SVN服务器是中心,它存储两个重要的东西:网站目录及文件 和 补丁包程序;
2 测速环境中的代码均来自SVN服务器,分为两部分:网站源程序和补丁包,均通过svn checkout 获得;
3 测速环境下,开发完成后,通过svn commint -m 提交;
4 本地svn客户端,更新;
5 通过本文下方“svn 补丁包生成”,生成相关补丁包;
6 svn补丁包提交至svn服务器;
7 代码提交服务器上 svn up 补丁包;
8 提交至生产环境rsync覆盖 。
===========20120618update================
code目录来存放网站源文件
patch目录用来存放补丁包程序的,在这里我按照日期进行存放
这2个目录可以在2台服务器上、可以在一台服务器的不同目录。
这2个目录可以使用rsync 或者使用 \cp (强制覆盖)进行更新
已测试通过
========================================
貌似是有点复杂啊,呵呵。
【想法的初衷是来自:如果网站有上万个文件的情况下,怎么解决本地提交和服务器下rsync的时间消耗】
原本的代码提交服务器,看我 上一篇文章 。
原先这方面的架构缺点,我认为,在大批量文件上万的情况下,一方面svn更新/提交要时间;二方面rsync全目录比对也需要时间;
我修改后的这个,只维护补丁包程序,大大减少这中间的时间消耗
且根据日期不同,补丁包可按照版本、日期等归案。
rsync推送的也只有小批量的补丁包程序。
补丁包程序目录结构(格式参考)
|-patch
|——patch_0602
|——patch_0605
|——patch_0611
|——patch_0614
|-patch
|——V1.0
|——V1.2.2
|——V2.0bulid
|——V2.0stand
类似这样的。
关于patch的补丁包生成,他是这样的一个过程 看截图部分20120615补充
另外,非常希望和有这方面经验的朋友,讨论学习!!!