【原创】使用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补充

 

 

 

 

 

另外,非常希望和有这方面经验的朋友,讨论学习!!!

posted @ 2012-06-14 15:23  thinkidea  阅读(3705)  评论(5编辑  收藏  举报