开发场景
面向trunk开发
比如4人开发团队 每2人负责一个功能模块,两个功能模块在同一个项目中,此时如果4个人都是在主分支trunk上进行开发 那么必须等两个功能模块全部ok 才能上线 (操作比较简单 不进行赘述)
缺点:
- 开发耦合性过大
- 项目代码不易管理
面向branches开发
分支开发 对trunk进行分支开发 按照上面的逻辑 新建两个分支
2个人编辑一个分支 当其中一个分支开发完成 可以直接发布
另外两人开发完成后再发布
优点:
- 减少团队作业之间的耦合性
- 代码管理更加方便
svn使用流程
流程图
步骤详解
开发过程
针对trunk进行 branches or tag的操作 创建新的分支 命名比如:
20180822_test_demoproject 规则:时间_功能模块__项目名称
将新建的分支 checkout 至本地
开发新的功能 并做本地测试 (这个过程会有多次commit)
本地测试完成 将代码提交到svn 对应的branches上面
在beta服务器上面进行发布branches的代码并进行测试
准备发布过程(同步trunk)
在开发过程中 trunk可能已经被别的小组修改 所以此时需要同步trunk代码
- 使用本地branches作为工作空间 merge from trunk 将trunk上面新增的代码 merge到本地 (此时本地branches中的代码是最完整的)
- 将新增的代码 提交至svn branches (此时可以进行一次beta上面的回归测试)
review代码 发布
此时如何进行代码的review是一个问题 比如在3的步骤中 进行了多次提交 开发者已经不知道在开发新功能的时候提交了哪些代码 此时如果贸然进行发布 可能会出现一些意想不到的情况 比如修改了配置文件 没有修改回来 会导致线上出现很大的问题, 那么如何进行代码的review请看下面的步骤
- 将svn trunk上的代码checkout至本地 merge from svn branches 此时相当于将branches中的这个功能模块所有的新增或者修改的代码 merge到了本地的trunk上面
- 此时进行commit 在提交之前 一定记得仔细review每一个提交的代码文件 是否正确 review完成确定没有问题再提交 这一步为重中之重!!! 不可省略,切记!
有不足之处还望不吝赐教 欢迎关注
未经作者允许 请勿转载,谢谢 :)