SVN代码管理与版本控制

by:授客 QQ1033553122

 

欢迎加入软件性能测试交流群(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代码管理与版本控制的更多相关文章

  1. git 一般的开发流程中的代码管理

    一般的开发流程中的代码管理 1. 从版本库中下载代码 git clone ssh://wenbin@192.168.1.3:29418/mustang-web 2. 针对某个feature(比如ins ...

  2. 使用scm-manager搭建git/svn 代码管理仓库

    使用 scm-manager 搭建 git/svn 代码管理仓库 1.在官网上下载scm-manager 下载地址https://www.scm-manager.org/download/ 2. 配置 ...

  3. 【ConnerStone】SVN代码管理 - 基本使用

    第一步,链接服务器,创建代码管理仓库 第二步,输入服务器的配置,链接服务器(例子是以svn:// 为例子) 第三部 ,链接成功后,SVN的基本界面组成 第四步 从仓库中check out你需要的项目 ...

  4. 在Windows Server 2008上部署SVN代码管理总结

    这段时间在公司开发Flex程序,所以使用TortoiseSVN作为团队代码管理器,今天在公司服务器上部署SVN服务器,并实验成功,总结如下: 服务器环境: 操作系统:Windows Server 20 ...

  5. NetBeans集成SVN代码管理实例

    最近给银行做一个小工具,要求用Java做一个C端带界面的小工具,想来想去用NetBeans最合适,因为Eclipse,MyEclipse,IDEA这些做界面得要额外的UI插件,比较麻烦. 我跟同事两个 ...

  6. WINDOWS下配置SVN代码管理

    服务器端使用 visualsvn server,客户端使用tortoiseSvn. 一.服务器端 1.首先,下载visualsvn server,安装到服务器.下载地址: http://www.vis ...

  7. svn代码管理的使用工作流程

    1. 新建代码库repository. 2. checkout 到workspace. 3. checkin 回 repository. 4. release 一个版本出来(相当于拉出一个branch ...

  8. SVN代码管理发布

    1.svn的独立模式应用 2.svn钩子的应用(例如:代码提交前的文件格式限制,大小限制,代码发布svn成功后的备份等等) 3.大型企业的代码发布流程 有一些制度流程.逻辑方案 4.业务变更管理

  9. 第一课:SVN代码管理

    SVN:是一个跨平台的开源的版本控制系统.svn版本管理工具管理着随时间改变的各种数据.这些数据放置在一个中央资料档案库中.svn会备份并记录每个文件每次的修改更新变动.svn的工作流程:1.在中央库 ...

随机推荐

  1. Spring Boot发布将jar包转为war包。

    Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布.使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题.所以,jar包不一定 ...

  2. 如何用java POI将word中的内容导入到mysql数据库中

    由于作业需要,要求我们将word文档中的数据直接导入到mysql中,在网上找了很常时间,终于将其解决. 由于比较初级,所以处理的word文档是那种比较规范的那种,条例比较清晰,设计的思路也比较简单,就 ...

  3. Java RMI 概观

    RMI是Java的一组拥护开发分布式应用程序的API. RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol) ...

  4. 看看一个老程序员如何手写SpringMVC!

    人见人爱的Spring已然不仅仅只是一个框架了.如今,Spring已然成为了一个生态.但深入了解Spring的却寥寥无几.这里,我带大家一起来看看,我是如何手写Spring的.我将结合对Spring十 ...

  5. Jenkins系列之一——初识

    Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 功能 Jenkins功能包括 ...

  6. 如何理解 Linux 中的 load averages

    原文:https://mp.weixin.qq.com/s?src=11&timestamp=1533697106&ver=1047&signature=poqrJFfcNAB ...

  7. 从零开始学 Web 之 JavaScript(四)数组

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  8. Kafka实战-Kafka Cluster

    1.概述 在<Kafka实战-入门>一篇中,为大家介绍了Kafka的相关背景.原理架构以及一些关键知识点,本篇博客为大家来赘述一下Kafka Cluster的相关内容,下面是今天为大家分享 ...

  9. [深度学习]理解RNN, GRU, LSTM 网络

    Recurrent Neural Networks(RNN) 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义 ...

  10. node-webkit无边框窗口用纯JS实现拖动改变大小

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head>     & ...