测试思想-流程规范 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.在中央库 ...
随机推荐
- Swift5 语言指南(三) 快速之旅
传统表明,新语言中的第一个程序应在屏幕上打印“Hello,world!”字样.在Swift中,这可以在一行中完成: print("Hello, world!") // Prints ...
- 学习Python语言 基础语法:变量的基本使用
Python变量 程序是用来处理数据的,变量就是用来保存数据的,通过给数据定义一个名称来保证方便记忆和识别.使用这个数据.变量可以保存所有类型的数据. Python变量的定义 在Python中,变量的 ...
- 机器学习技法笔记:04 Soft-Margin Support Vector Machine
Roadmap Motivation and Primal Problem Dual Problem Messages behind Soft-Margin SVM Model Selection S ...
- iOS-AFN Post JSON格式数据
- (void)postRequest{ AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // >>> ...
- 【xsy1300】 原题的旅行 最短路+倍增
题目大意:有一个$n$个点,$m$条边的无向图,玩家走过第$i$条边,血槽中的血会下降$v_i$点,如果不足$v_i$点,这人会当场去世. 这$n$个点中,有若干个是关键点,在这些关键点可以将血槽补满 ...
- Java访问文件夹中文件的递归遍历代码Demo
上代码: import java.io.File; /* * 需求:对指定目录进行所有内容的列出(包含子目录中的内容) * 也可以理解为 深度遍历. */ public class FindAllFi ...
- mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...
- 第一次用python 写的简单爬虫 记录在自己的博客
#python.py from bs4 import BeautifulSoup import urllib.request from MySqlite import MySqlite global ...
- 杭州富阳场口科目四考试公交路线(西溪北苑->场口)
从西溪北苑出发,时间充裕,比较悠闲,打算坐公交前往,也打算做下科目四模拟题,顺便欣赏沿途的风景(去的时候需要看题目,回来的时候可以放松,哈哈哈),路线如下. 早上7点半出发,出去吃个早餐,步行到文一社 ...
- Re:从零开始的MySQL入门学习
Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器.由于这四个软件都是免费或开放式源码软件,因此使用这种不用花一分钱(人工成本除外)就可以建立起一 ...