定性。一旦出现点问题不好定位,比如:出现问题后通常会优先排查发版涉及的内容,但是部分问题是由于其他项目代码引起的。因此,随着公司和项目规模的壮大,对软件代码版本管理提出了更高的要求。
3现状分析
31现状详述
当前代码版本管理现状如下:1所有的开发都在一个目录里面做,各种需求、项目、代码、文件混杂在一起。2提交测试服务器时,只考虑了编译能通过,而没有考虑功能本身有没有完成。3测试出bug以后,会在开发目录进行修改,然后再次提交到测试服务器。这时提交的
代码就可能包含了他人对其他功能项目的修改,而测试又只会针对此bug再做测试。这就导致了除了此bug之外的修改可能会没有测试过就直接发布到了服务器上,引起预发布环境不稳定并增加预发布bug数量。总体来说,当前工作流程是:预发布出bug,研发修改,再提交测试,然后预发布测试
f通过的代码。整个流程也较为复杂消耗了大量人力,从而间接的增大了研发成本。参照下图
提交
发现橙色bug
开发库
测试服
修复Bug
开发库
开发库
再提交测试服
他人修改的代码
预发布
4以上描述的过程还可能出现在正式环境上,导致更严重的后果。
32目标细化
结合第一章节提及的本文目标、SVN工具的能力以及之前工作中遇到的具体问题,将本规范的撰写目标具体细化为:1提交到测试服务器的代码只能包含本次需要测试的内容。2发布到预发布环境的代码只能包含这次需要测试的内容。3发布到正式环境的代码只能包含本次发版的内容。
33SVN版本管理331概述
为了达成上述我们设定的版本管理目标,在指定具体的策略之前,我们需要理解SVN的版本管理思路,这里简单将其阐述如下:
f首先,SVNSubversio
有一个很标准的目录结构,如下projecttru
kbra
chestags此目录为只读这个标准的目录结构在大多数的开源项目中都能看到,这套标准目录结构为软件开发提供了一种非常好的宏观的版本库管理机制,特别是在产品类项目管理中。其中,tru
k目录为主开发目录,bra
ches目录为分支开发目录,tags目录为存档目录,也就是基线库。其各自含义描述如下:Tru
k中文翻译为“主干”,在项目运作过程中,日常的开发和管理资料都在此目录中进行维护和更新。Bra
ches中文意思为“分支”,在项目运作过程中,用于存放阶段性的成果或者版本,这些阶段性的成果或者版本必须是可维护的。同时,这里的开发成果物必须要保持每天一到两次把主干上的内容合并过来。tags中文意思“标签”,此目录对一些阶段性r