SVN源码版本控制目录方案
SVN的目录规划:
(1)trunk:主干目录,用于存放当前正在开发和维护中的源码版本,这是一个进行日常开发和维护的主要目录;
(2)branches:分支目录,用于存放阶段性的已发布源码版本(包括当前线上版本),这些版本可以继续进行开发和维护,如不同客户的定制版本、生产环境发生异常版本等;
(3)tags:标签目录,用于存放阶段性的已发布源码版本,这是一个可用于备份回溯的只读存档目录;
(4)deploy:部署目录,用于存放阶段性的已发布二进制版本(包括当前线上版本),可用于生产环境版本回溯。
一个应用系统从无到有,最先从trunk目录一砖一瓦开始构建和开发,可建立4个公用目录:①doc文档目录,存放系统分析、设计、开发、测试和维护等相关文档;②db数据库目录,用于存放数据库文件、数据库创建或升级脚本文件等;③ref引用目录,存放系统引用的第三方程序集等相关文件。对每一个版本我们可以采用点分4段的数字版本号:主版本号.次版本号.修订版本号.日期/流水版本号,主版本号变更表示系统架构发生变动,次版本号变化表示系统功能发生变动,修订版本号表示系统解决了相关BUG或优化了相关特性,当主/次版本号发生变化就算一个阶段性版本。
当开发或维护完成后需要进行第一次发布部署时,首先将生成的待发布二进制版本存放在deploy目录中,并将该版本源码分别存入branches和tags目录,然后可通过在服务器上执行SVN更新发布部署该版本。这里我们可以为开发环境、测试环境和生产环境分别建立各自的deploy目录,通常只需要为生产环境建立各阶段已发布版本的备份用于异常情况下的回溯。每个版本存放在以版本号命名的目录中。
在此后的发布和部署过程中,只要主/次版本号变更就代表一个阶段性版本,就需要在branches、tags、depoly目录中建立该版本目录;其它情况下直接同步branches、tags、depoly目录中最新已发布版本目录并变更版本号目录名即可。
若trunk主版本已发生阶段性变动,而最新已发布版本在生产环境出现异常,可在branches目录中针对相应版本进行维护并同步到trunk主版本和tags相应版本。