结合Subversion软件版本管理,我的软件开发流程
我负责一个中等规模软件的开发维护工作,使用的工具包括:
Subversion SVN进行源代码管理
TestDirector进行测试管理
使用了大概一年时间了,没怎么思考怎样才是合理的开发流程,有哪些原则需要遵守,今天,我的工作面临三个问题:
(1)、我正在一个从4.0.21版本拷贝过来的分支进行新需求开发,计划一个月后发布4.1
(2)、一个星期前发布的4.0.21版本发现了bug,于是我再从4.0.21版本拷贝分支,修改bug提交,计划3天修改完bug,发布4.0.22
(3)、二个月以前发布的4.0.17版本发现了一个严重的bug,该版本在现场使用,优先级最高,需要尽快解决,我犯难了。
第三个问题很棘手,通过与领导同事沟通,商定方案如下:从4.0.17拷贝分支,在该分支上修改bug,提交,发布后在svn的tag目录下备份4.0.17_1,同时将该分支的修改合并到主干,问题顺利解决。
问题解决后,我再次与同事沟通,觉得软件版本管理可以遵循如下几个简单的原则:
(1)svn目录包括trunk,tag,branch,分别对应主干,旧发布版本,临时分支
(2)svn主干代码修改较少,需要保证其代码稳定
(3)每发布一个版本都需要在tag下备份
(4)多个开发任务可以并行进行,但必须在branch上进行,修改完成后合并到主干
(5)之前发布的版本出现bug之后,必须要从那个版本拷贝分支,修改,发布,tag备份,再合并到主干。
(6)认真记录changelog,认真写svn日志