测试思想-流程规范 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.在中央库 ...
随机推荐
- Eclipse 刚检出的项目 Build path 的时候提示 No action available
问题: 从SVN检出来的项目发现无法进行build path,也不报错,任何类之间也无法关联(Ctrl+右键无法点进去). 原因: .classpath是Eclipse的工程文件,别人没有将工程的信息 ...
- OpenGL ES: iOS 自定义 UIView 响应屏幕旋转
iOS下使用OpenGL 如果使用GLKit View 那么不用担心屏幕旋转的问题,说明如下: If you change the size, scale factor, or drawable pr ...
- u-boot中debug的一些总结
研究u-boot,首要搞清楚的是代码的流程,运行流程是什么样子的呢?不知道,就看log.这就要把log信息 打开.研究u-boot的文件,发现里面是很多DEBUG宏定义的打印,这个打印着怎么打开呢? ...
- .NET手记-友盟消息推送服务器端加密算法的实现
最近为App开发消息推送功能,这里我们采用了友盟的消息推送服务,但其后台简陋,可定制化程度低,所以决定接入服务器端API,在自己的服务器上部署一套推送服务. 其中涉及到很多问题,首先要解决的就是与友盟 ...
- 使用pyenv来管理python版本
使用pyenv可以很方便的切换python版本,而不会影响系统的python版本,对需要使用supervisor(仅支持python2)托管程序,项目使用python3开发的情况十分有用 pyenv的 ...
- curl: (7) Failed connect to 172.16.100.199:9200; 没有到主机的路由
没有到主机的路由这种问题很常见,多数是由机器的防火墙没有关闭. Ubuntu 查看防火墙状态 ufw status 关闭防火墙 ufw disable centos6 查看防火墙状态 service ...
- LintCode翻转字符串问题 - python实现
题目描述:试实现一个函数reverseWords,该函数传入参数是一个字符串,返回值是单词间做逆序调整后的字符串(只做单词顺序的调整即可). 例如:传入参数为"the sky is blue ...
- cmd窗口使用sftp命令非密钥和密钥登录SFTP服务器的两种方式
cmd窗口使用sftp命令非密钥和密钥登录SFTP服务器的两种方式 一.在Windows环境下搭建SFTP服务器可参见http://www.cnblogs.com/Kevin00/p/6341295. ...
- 遍历List集合的三种方法
List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("b ...
- Apache Commons Beanutils 二 (动态Bean - DynaBeans)
相关背景 上一篇介绍了PropertyUtils的用法,PropertyUtils主要是在不修改bean结构的前提下,动态访问bean的属性: 但是有时候,我们会经常希望能够在不定义一个Java类的前 ...