1. 维护信息
1.1. 20180726
维护时间:2018-07-26
维护人员:weiw
维护内容:创建文档
2. 代码提交要求
覆盖代码是最不能容忍的
- 定期从SVN完整同步代码,使得本地的开发环境和测试环境保持最新
- 在修改代码前,update相关代码,使得自己改的代码是最新的
- 提交代码前完成代码自测和代码检查
- 提交代码时,对自己修改的代码与资源库同步比较,如果有冲突,合并后,需要在本地重新测试一遍
- 有数据结构变更时,需等DBA处理完数据结构变更流程后才能提交
3. 代码提交步骤
第一步:与资源库同步代码
第二步:逐个文件逐行代码进行比较,确定变动代码是自己修改的,如果有冲突,需要解决冲突
错误解决冲突示例:直接还原资源库中的版本,用自己的版本强行覆盖提交
禁止大面积格式化代码,如国际化,十六进制中的字母统一用大写
第三步:提交文件,给出详细注释,如:任务项名称,BUG编号名称;如果是代别人提交,需要注明原始提交人姓名
4. 代码提交规范
原则
只提交代码文件和产品所需的资源文件,其余文件一律不允许提交!
4.1. 禁止提交的文件
禁止提交以.开始的任何文件和目录
如:
IDE生成的目录
.idea目录 .eclipse目录
版本管理系统本地配置信息
.svn目录 .git目录
项目管理工具(maven、gradle)的临时目录
.gradle目录 .mvn目录
eclipse配置信息
.classpath文件 .project文件 .settings文件
禁止提交和本地工程信息相关的任何文件
如:
- 项目配置信息文件
project.iml文件 project.proj文件
- 项目配置信息文件
编译产生的文件
如:
- java编译产生的目录
build目录 target目录 out目录
- java编译产生的目录
打包工具产生的依赖目录
如:
- nodejs的依赖目录
node_modules目录
- nodejs的依赖目录
动态生成的文件(所有动态生成的文件应该交由CI处理,有相关需求请联系韦伟)
如:
webpack构建生成的静态文件
static/js/app.39c23dbe587ebf1cebed.js
DEMO文件、文档
如:
开源工具使用到的示例(请上传到项目文档SVN)DEMO目录 README文件
其他所有非工程构建、编译、测试所需要的文件
4.2. 提交信息
- 每次提交必须填写大于8个字符的提交信息
- 提交信息内容必须能表明本次提交的内容,禁止无意义的提交信息。
5. 版本库
5.1. 分支
版本库结构
project
├──branches
| ├──V6.1SP2_Hotfix
| └──V7.0_Hotfix
├──tags
| ├──V6.1SP2_Release_20180328
| └──V7.0_Release_20180601
└──trunk
└──src
├──main
| ├──java
| | └──com
| | └──seeyon
| | └──news
| | └──NewsManager.java
| ├──resources
| └──webapp
└──test
├──java
| └──com
| └──seeyon
| └──news
| └──NewsManagerTest.java
└──resources
5.2. 版本管理说明
- 当前最新的版本在trunk上开发
- 每产生一个新的发布版,拷贝trunk到branches下,命名为"版本号_Hotfix",如该版本有多个发布版本,命名为"版本号_Hotfix_年月日",如:V7.0_Hotfix_20180630。表示当前分支为bug修复分支,该版本的bug都在该分支修复。bug修复需提交到所有需要修复的分支上。
- 快速需求在测试完成后仅允许提交到快速需求相应的代码分支中,其他版本需要在客户有需要的时候再次发起快速需求或等待月度修复包一起提交。
- 每产生一个新的发布版,拷贝trunk到tags下,命名为"版本号_Release",如该版本有多个发布版本,命名为"版本号_Release_年月日",如:V7.0_Release_20180630。表示当前分支为发布版本的备份,可用作历史记录查询等,Release版本禁止修改。
- 备份后的分支需要修改pom文件中的工程版本号为分支名称