赞
踩
SVN作为一个老牌的代码管理工具,现在依然有很多团队在使用。本文主要通过SVN的分支管理用于规范项目团队中的代码开发流程。
图中有两条代码线 trunk 和 online,trunk线作为代码开发的主线它的代码确保是和线上代码同步的,也就是说trunk上的代码必须能达到发版到生产环境中。
项目的迭代开发需从trunk中创建分支线作为本地开发如图branch1和branch2,每个支线开发完成后需将支线代码合并到trunk中,在合并的同时需要处理完合并冲突才可提交。
在实际中会出现多个分支同时开发的情况,上图即有两个开发支线开发并出现重合阶段,最终以支线合并到trunk线的代码为准,也就意味着后面提交代码的支线需要兼容前一个支线的代码,因此建议在实际迭代时迭代周期尽可能缩短不可太长,减少代码冲突。
使用 svn checkout 从主线上将主线代码checkout到本地机器中。
如果本地已经是有svn版本了就不用再checkout了,直接使用 svn switch切换到trunk线上即可。
使用 branch命令创建本次迭代开发的支线。
支线命名规则:branch+迭代名+时间(也可以按照团队要求进行命名),命名越清晰可读可以降低维护成本。
svn branch
支线创建完成后,下一步就需要切换到分支进行代码开发,代码开发完成直接先在支线上提交。
使用svn swith [分支名称] 命令进入到分支代码环境中。
在支线上开发完成后,需将主线的代码合并到分支上先解决完主线代码合并冲突并提交到支线上。
这一步操作很多人认为是多余的,但是我认为很有必要,因为你在支线上先合并了主线,如果有冲突你可以直接在支线就可以解决冲突,解决完冲突后在支线可以先测试是否有bug。这样到主线合并支线的时候基本上就没有冲突了,这也可以将冲突的风险降低。
使用 svn merge [trunk线地址] 命令进行合并
. 解决完冲突后,将本地代码切换到trunk主线上。
svn switch [trunk线地址] 命令
将刚刚开发完的分支线代码合并到trunk中,由于第4步合并过trunk到分支的代码并解决完冲突并提交发版,这步基本不会出现冲突,除非在这中间又出现新的代码合并到trunk中。
svn merge [分支线地址] 命令
到这一步本地开发则已经完成,只要在主线上提交代码就算是正式发版,服务器中只要svn update就可以将代码更新,线上则正式修改完成。
不管是使用svn还是git或者是其他的代码控制工具,我们的目的都是为了能够规范团队的发版流程、规避发版风险、提高团队协作的效率。而这里规避风险又是所有因素中最重要的,因此在团队协作开发中也会制定响应的规范进行约束,比如:支线命名规范,代码合并规范,代码提交备注编写规范,冲突解决流程规范等等。
在很多公司其实一般程序员都没有主线直接编辑和提交的权限的,大部分都是只能在支线上开发并在支线上测试,最终由经理级别的人来进行主线代码合并和提交。主线代码一旦提交则意味着发版完成,如果有bug则认定为线上生产事故,所以主线代码提交一定慎重、慎重、再慎重!!!
开发不易,“行百里半九十”,辛苦开发一个月,希望大家都能顺利发版成功!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。