SVN流程及使用指南

来源:互联网 发布:acl访问控制列表 端口 编辑:程序博客网 时间:2024/05/21 15:20

由于公司部门后台人多、项目多、繁杂,但是有没有统一的SVN提交规范流程,所以他们在开发过程中总是遇到很多令人蛋疼的问题,比如说:代码被别人覆盖等.于是乎,小组长就专门开了一个会议,最终决定采用在trunk上发布、branch上开发的模式.

以下是SVN详细的使用流程:
1. 简介
1.1. trunk
主干:测试、沙箱、生产均从这里获取代码。
1.2. branches
分支:所有研发人员在此目录下研发。分支的新建与删除均由项目Leader确定。
1.3. tags
标签:像分支一样备份代码。但是 Tag不被用来开发,他们只是用来标记历史上线代码的状态。
2. 一些规范
2.1. 关于中文路径
目前在SVN相关开源软件中,对于中文的支持普遍不佳,中文目录在实际使用中会解析成一长串ASCII码显示,根据部门目前情况,作如下规定。
″ 程序源代码、配置文件目录及其父级目录必须使用英文,且路径不能包含空格。如需分隔,请使用下划线。
″ 目录命名可使用英文名,也可以使用汉语拼音,具体使用,根据研发人员接受程度而定。
″ 其他目录不禁止使用中文,但也不推荐。
2.2. 程序版本号
程序版本号规则:A.B
″ A表示大版本号,B表示小版本号。如有需求也可使用A.B.C三位版本号。版本号从0开始,由研发人员确定;
″ 程序版本号只能上升,不能下降。
″ 高版本的程序包含低版本程序的功能。
2.3. 项目名
为了访问方便、快捷。项目名请使用小写字母,使用下划线分隔,尽量做到见名知意。如:yanglao。
2.4. branch命名规则
命名规则:项目名程序版本号六位日期
″ 六位日期为开分支当天时间。
″ 六位日期:年份后两位,月份两位,日期两位。
2.5. tag命名规则
命名规则:项目名分支程序版本号六位日期
″ 六位日期为程序最终上线日期。
″ 六位日期:年份后两位,月份两位,日期两位。
2.6. tag标识通知
程序上线完成后,开发人员应将上线相关信息,邮件通知相关人员。
详情见附录一。
2.7. 忽略目录
所有IDE、Ant、Maven等工具自动生成的文件和文件夹都应配置忽略。如target build *.iml .idea .settings .classpath .mymetadata .project
2.8. 目录说明
每个项目下面都有如下目录,下面对这些目录进行详细解释:(公司先阶段暂时不适合,看看就好)
  branches:分支(所有的开发任务都是在分支上进行的)
branch:分支名
01_Documents:文档
  01_Requirements:需求分析
  02_Design:系统设计(如详细设计,UI设计等)
  03_Testing:测试文档
  04_Guides:帮助文档(如开发API,用户帮助文档)
  02_Source:代码
  03_Other:其他文件
  tags:标签(仅标识每次上线内容)
  trunk:主干(用于测试和上线)
ps:解释下数字的作用,用于多个文件夹排序。
2.9. 分支生命周期
一个分支对应一个上线版本,上线完成后该分支就应该丢弃。重新从最新tag开新分支。研发人员也应在新分支开发新版本的程序。
3. 流程
这里写图片描述

3.1. 正常流程
1. 项目Leader从tags拷贝最新源代码到branch1。
2. 研发人员完成开发需求后,将程序送测。由配置管理员或者项目Leader将branch1合并到trunk。注1
3. 配置管理员将trunk的代码编译,打包,发布到测试环境。
4. 测试人员测试程序,如发现bug,研发人员在branch1 修改。
5. 程序上线完成后,配置管理员或者运维在tags目录标识最新上线代码。
注1:将branch1合并到trunk前,请将最新的tags代码合并到trunk,确保没有其他分支合并到trunk。
3.2. 异常流程
此流程仅适用于branch1中存在有不能上线的代码时使用。
1. 项目Leader从tags拷贝最新源代码到branch2。
2. 研发人员将branch1的需要上线的代码提交到branch2.
3. 研发人员完成开发需求后,将程序送测。由配置管理员或者项目Leader将branch2合并到trunk。注2
4. 配置管理员将trunk的代码编译,打包,发布到测试环境.
5. 测试人员测试程序,如发现bug,研发人员在branch2 修改
6. 程序上线完成后,配置管理员或者运维在tags目录标识最新上线代码。
注2:将branch2合并到trunk前,请将最新的tags代码合并到trunk,确保没有其他分支合并到trunk。
4. 使用教程
演示使用TortoiseSVN 1.8中文版。
4.1.1. 创建一个branch
步骤如下:
1. 找到xxx项目的最新tag,在该目录上右键
2. 显示日志(确定版本号)
3. 右键,选择从版本库创建分支/标记
4. 按规则输入分支路径,日志
5. 点击确定。分支创建成功。
这里写图片描述
这里写图片描述

4.1.2. 创建一个tag
步骤如下:
1. 在trunk目录上右键
2. 显示日志(确定版本号)
3. 右键,选择从版本库创建分支/标记
4. 按规则输入tag路径,日志
5. 点击确定。tag创建成功。

这里写图片描述

这里写图片描述

4.1.3. 合并
合并可以用于,branch合并branch、branch合并trunk、trunk
合并tag、branch合并tag。不管是哪个合并哪个,其原理和操作步骤都相同,演示使用branch合并trunk。
合并步骤如下:
1. 检出trunk到本地并打开文件夹
2. 右键→TortoiseSVN→合并
3. 选择合并类型(合并一个版本范围),下一步
4. 选择合并的源URL(演示使用的是分支),其他选项默认,下一步→
5. 测试合并,查看是否有冲突
6. 合并,解决冲突(如果存在)
7. 最后,别忘记提交。
这里写图片描述
这里写图片描述

NOTE:指定(a)范围选项可以选择需要合并的版本号。点击显示日志查看详情
这里写图片描述

这里写图片描述
这里写图片描述

5. 附录
5.1.1. 附录一:tag标识通知
这里写图片描述