【原创】使用SVN部署生产环境(已测)(欢迎指正)

摘要:
在我看来,在数以万计的大量文件的情况下,一方面,更新/提交svn需要时间;另一方面,rsync全目录比较也需要时间;修改后的版本只维护补丁程序,大大减少了过程中的时间消耗。补丁包可以根据版本和日期进行归档,具体取决于日期。rsync只推送了一小批修补程序包。

详细内容请查看本人博客 www.thinkidea.net

欢迎高手批评指正!!!

这是我自己在纸上画的一个关于SVN+patch+rsync部署生产环境的图:

先看图:

【原创】使用SVN部署生产环境(已测)(欢迎指正)第1张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第2张

我的思路是这样的:

1 SVN服务器是中心,它存储两个重要的东西:网站目录及文件 和 补丁包程序;

2 测速环境中的代码均来自SVN服务器,分为两部分:网站源程序和补丁包,均通过svn checkout 获得;

3 测速环境下,开发完成后,通过svn commint -m 提交;

4 本地svn客户端,更新;

5 通过本文下方“svn 补丁包生成”,生成相关补丁包;

6 svn补丁包提交至svn服务器;

7 代码提交服务器上 svn up 补丁包;

8 提交至生产环境rsync覆盖 。

===========20120618update================

【原创】使用SVN部署生产环境(已测)(欢迎指正)第3张

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补充

【原创】使用SVN部署生产环境(已测)(欢迎指正)第4张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第5张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第6张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第7张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第8张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第9张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第10张

【原创】使用SVN部署生产环境(已测)(欢迎指正)第11张

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

免责声明:文章转载自《【原创】使用SVN部署生产环境(已测)(欢迎指正)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇React入门教程第一课--从零开始构建项目FPGA入门1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

svn安装使用1(转载)

SVN服务器搭建和使用(一)  Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上了,下载地址: http://subversion.apache.org/packages.html 这是二进制文件包的下载地址,你可在左侧的导航栏找到源代...

xcode svn

xcode svn   转帖:http://linyatong.blog.163.com/blog/static/237072054201451822525446/    在XCode中使用SVN   Xcode 是开发人员建立 Mac OS X 应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径,而SVN是版本控制工具,那么Xcode...

svn 分支与合并的使用

  在使用svn的时候我们往往有这样的需求。我们修改某些代码,因为对某项技术不是非常的熟悉,担心自己当前的修改(或者叫测试)会影响到服务器中版本库代码的崩溃等。传统做法我们会手动复制一份代码,然后修改如果修改成功则提交到服务器版本库,否则直接删除。       这样做一定程度上满足了要求,但一个问题是在你进行测试修改的时候版本库可能已经更新了n个版本了。那...

[SVN(Ubuntu)] SVN 查看历史详细信息

转载: http://lee2013.iteye.com/blog/1074457  以下内容,对ubuntu命令行查看代码变化非常有用。 SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史: svn log 用来展示svn 的版本作者、日期、路径等等 svn dif...

SVN下错误集锦

SVN下错误集锦 一SVN下的文件被locked不能update和commit 最近做项目的时候,遇到这个问题,SVN下的文件被locked不能update和commit。其提示如下: 解决办法:执行“清除”操作后,就可以了。(点击Clean up…即可,之后就可以提交和更新了) 二 SVN还原提交的版本 由于在客户端提交应用程序时的误操作,导致修改了...

SVN版本分支合并

  SVN,开发中常用的工具,也没什么可说的。这里只是记录一下,以免太久不用了想用的时候又忘了。   首先已经有两个目录,一个是分支目录SVNChild,一个是主干目录SVNMain。SVNChild是从SVNMain分出来的一个版本,即整个代码结构(文件夹、代码文件)基本一样的,当然新添加了部分文件、修改文件是正常的。如果不是,则合并的选项都不是一样的。...