测试思想-流程规范 SVN代码管理与版本控制
SVN代码管理与版本控制
by:授客 QQ:1033553122
欢迎加入软件性能测试交流群(QQ群):7156436
目录
一、 创建根目录
创建一个空文件夹,例如 svn,作为所有版本库的根目录
[root@localhost ~]# mkdir -p /svn/
二、 创建版本库
进入svn目录,创建版本库
[root@localhost ~]# cd /svn/
[root@localhost svn]# svnadmin create --fs-type fsfs project1
三、 修改版本库基础配置
Ø 修改authz
[root@localhost conf]# vim authz
……略
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
group = shouke
……略
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[project1:/]
@group = rw
Ø 修改svnserve.conf配置
[root@localhost conf]# vim svnserve.conf
……略
[general]
……略
anon-access = read
auth-access = write
……略
password-db = passwd
……略
authz-db = authz
Ø 新增svn用户
[root@localhost conf]# useradd shouke
[root@localhost conf]# passwd shouke
Changing password for user shouke.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
注:设置的用户密码为 123456
Ø 修改password配置文件
[root@localhost conf]# vim passwd
……略
[users]
# harry = harryssecret
# sally = sallyssecret
shouke=123456
Ø 修改authz配置文件
[root@localhost conf]# vim authz
……(略)
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
group1 = shouke
……略
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[project:/]
@group1 = rw
四、 启动SVN
[root@localhost conf]# svnserve -d -r /svn/
说明:-d 表示以daemon的方式运行,-r dir_path 表示把dir_path当作版本库的根目录,比如 /svn/repo,svn://192.168.1.103/repo,访问的就是/svn/repo
查看
[root@localhost conf]# netstat -antp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 8474/svnserve
说明:如上,默认端口为3690
五、 客户端访问

六、
目录规划

目录说明:
code:用于存放代码
doc:用于存放文档,比如初始化sql脚本
master
线上主分支,存放线上最新“稳定版”代码,该分支永的代码远处于随时可发布的状态。
develop
开发主分支,存放开发状态下,相对稳定的“开发版”代码--完成了某个新功能或者修改某个bug、某个功能后的开发稳定版本。不管开发新需求对应的新功能,还是进行局部功能修改,非紧急bug修复,都是从该分支拉取对应的分支进行开发。
feature_branche
功能分支,存放开发阶段的代码。从develop拉取的分支,供开发人员进行bug修复、功能改造、新功能开发。
说明:这里可以根据实际需要,可以拉取多个分支,进行并行开发。通常,我们会把一次迭代中大功能拆分成小功能点,分配给不同的开发人员去实现,这样,每个功能点对应一个分支,实现之后再合并到develop。
release_branch
预发布分支。从develop拉取的分支(只在第一次),存放预发布环境对应的代码。
tag
按代码版本存档,存放的是master的备份,只读不写。
七、
代码管理与版本控制


说明:
开发阶段:
当线上形成一个稳定版本后,开发阶段,先从master
merge代码到develop,然后从develop拉取feature_branch分支,开发人员基于对应的feature_branch进行功能开发
测试阶段:
当开发人员完成开发任务并merge内容到develop后,测试人员需要构建jenkins上对应任务项目,将代码部署到测试环境,测试。
当测试环境测试通过后,开发人员需要把develop的内容merge到release_branch,
测试人员需要构建jenkins上对应任务项目,将代码部署到预发布环境,测试。
部署阶段:
当预发布环境测试通过后,开发人员需要把release_branch的内容merge到master,
运维人员构建jenkins上对应任务项目,将代码部署到线上环境,测试人员进行测试,测试通过则为master打tag,归档。
如果预发布测试发现存在问题,测试不通过,开发人员在release_branch上进行bug修复,然后测试人员在预发布环境验证,测试通过则先merge到master,运维人员构建jenkins上对应任务项目,将代码部署到线上环境,测试人员进行测试,测试通过则为master打tag,归档,同时还要将release_branch的内容merge到develop。
平日维护
平日开发阶段,如果发现已发布线上的版本存在紧急bug,那么开发人员在release_branch上进行bug修复,然后测试人员在预发布环境验证,测试通过则先merge到master,运维人员构建jenkins上对应任务项目,将代码部署到线上环境,测试人员进行测试,测试通过则为master打tag,归档,同时还要将release_branch的内容有选择的merge到develop。
注:用jenkins实现代码构建并自动部署,需要在jenkins新建的项目中配置源代码svn路径,这时候如果svn路径没有参数化,则开发人员每次拉取feature_branch后,需要手动设置代码路径为对应分支的代码路径,以便构建时能拉取到对应分支的代码。这里master,release_branch,develop仅保留一份代码,目录名称等保持不变,所以其在jenkins上配置的svn源代码路径为固定的,不需要改来改去。
参考连接:
http://www.jianshu.com/p/a3a32e473cc4
pdf版下载:SVN代码管理与版本控制.pdf
测试思想-流程规范 SVN代码管理与版本控制的更多相关文章
- git 一般的开发流程中的代码管理
一般的开发流程中的代码管理 1. 从版本库中下载代码 git clone ssh://wenbin@192.168.1.3:29418/mustang-web 2. 针对某个feature(比如ins ...
- 使用scm-manager搭建git/svn 代码管理仓库
使用 scm-manager 搭建 git/svn 代码管理仓库 1.在官网上下载scm-manager 下载地址https://www.scm-manager.org/download/ 2. 配置 ...
- 【ConnerStone】SVN代码管理 - 基本使用
第一步,链接服务器,创建代码管理仓库 第二步,输入服务器的配置,链接服务器(例子是以svn:// 为例子) 第三部 ,链接成功后,SVN的基本界面组成 第四步 从仓库中check out你需要的项目 ...
- 在Windows Server 2008上部署SVN代码管理总结
这段时间在公司开发Flex程序,所以使用TortoiseSVN作为团队代码管理器,今天在公司服务器上部署SVN服务器,并实验成功,总结如下: 服务器环境: 操作系统:Windows Server 20 ...
- NetBeans集成SVN代码管理实例
最近给银行做一个小工具,要求用Java做一个C端带界面的小工具,想来想去用NetBeans最合适,因为Eclipse,MyEclipse,IDEA这些做界面得要额外的UI插件,比较麻烦. 我跟同事两个 ...
- WINDOWS下配置SVN代码管理
服务器端使用 visualsvn server,客户端使用tortoiseSvn. 一.服务器端 1.首先,下载visualsvn server,安装到服务器.下载地址: http://www.vis ...
- svn代码管理的使用工作流程
1. 新建代码库repository. 2. checkout 到workspace. 3. checkin 回 repository. 4. release 一个版本出来(相当于拉出一个branch ...
- SVN代码管理发布
1.svn的独立模式应用 2.svn钩子的应用(例如:代码提交前的文件格式限制,大小限制,代码发布svn成功后的备份等等) 3.大型企业的代码发布流程 有一些制度流程.逻辑方案 4.业务变更管理
- 第一课:SVN代码管理
SVN:是一个跨平台的开源的版本控制系统.svn版本管理工具管理着随时间改变的各种数据.这些数据放置在一个中央资料档案库中.svn会备份并记录每个文件每次的修改更新变动.svn的工作流程:1.在中央库 ...
随机推荐
- Python——collections模块
collections模块 collections模块在内置数据类型(dict.list.set.tuple)的基础上,还提供了几个额外的数据类型:ChainMap.Counter.deque.def ...
- 脚手架vue-cli系列四:vue-cli工程webpack的基本用法
webpack的打包依赖于它的一个重要配置文件webpack.config.js,在这个配置文件中就可以指定所有在源代码编译过程中的工作了,就一个配置就可以与冗长的Gruntfile或者Gulpfil ...
- Nginx + Keepalived负载均衡
第一步: 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-1.2.18.tar.gz ...
- postgresql 表继承
可以按如下语句创建表 CREATE TABLE capitals ( name text, population real, altitude int, -- (in ft) state ) ); C ...
- 理解Array.prototype.fill和Array.from
之所以将这两个方法放在一起说,是因为经常写这样的代码: Array.from({length: 5}).fill(0),看起来很简洁,但是踩到坑之后才发现自己对这两个方法实在是不求甚解. Array. ...
- Spring杂记BeanFactory之getBean方法
1.(BeanFactory) getBean(beanName) 2.(AbstractBeanFactory) doGetBean 3.(AbstractBeanFactory) transfor ...
- OpenGL10-骨骼动画原理篇(1)
视频教程请关注 http://edu.csdn.net/lecturer/lecturer_detail?lecturer_id=440 本例程展示如何建立骨骼动画,有些人叫蒙皮动画 定义如下: 当前 ...
- 从零开始学 Web 之 JS 高级(二)原型链,原型的继承
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 从零开始学 Web 之 Ajax(二)PHP基础语法
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- #5 Python变量与输入输出
前言 学习一门编程语言,最基本的无非不过学习其变量规则.条件语句.循环语句和函数,接下来的几节将开始记录这些基本的语法,本节主要记录变量规则! 一.Python输入输出 在说Python变量之前,先补 ...