1. 规范目的 :
- 确保可以轻易确定特定时间发布或运行的版本。在新发布的程序存在重大缺陷时,可以尽快 rollback 到上一个稳定版本。
- 在需要修复紧急 bug 并尽快发布时,可以只发布必要的 bugfix 而不同时发布还不应发布的其他改动。
2. 目录命名规则 :
一级目录可以取团队名,产品名或公司名,按公司的项目规模,数量来定义。
二级目录应取项目名,由项目经理确定,不许修改。
三级目录存放多个子目录:trunks存放主线开发版本、branches存放分支开发版本、tags存放出包版本,dbpatch存放DB脚本,doc下存放项目文档和出包相关文档release note等。
四级目录存放源代码,逻辑上三级目录的结构应该相同。源码中包含且不限于所有依赖库包、运行脚本、配置文件、样例数据、参考文档等等。每次出子版本的Db脚本,建议包含增量脚本和全量脚本。
3. release版本的Bugfix 流程 :
指的是修复已经发布的程序(release)中的缺陷
- 根据对应release版本的tag分支复制一条新分支(bugfix braches),在bugfix braches 修复缺陷并提交一个或多个的commit
- 经过测试bugfix braches 检验
- 确定bugfix 都修改完毕,merge 到master分支上,并检验master 对应的bug
- 给对应的bugfix braches 发布版本,打tag,修改版本号(修正版本号加1)。比如,如果上一个 tag 是 2.5.1,这个 tag 应该是 2.5.2;
4. 其他 :
- 并不是每个 bug 都有专门发布 bugfix 版的必要,对于不紧急的 bug,可以在 master 里 fix 后随下一个版本发布
- svn 要经常提交,这样能减少提交冲突情况
- 新功能,修改bug在master分支coding,修改现场的bug在bugfix分支coding,tag分支发布版本后,就不能修改。