SVN简单流程---以公司的使用方法为例
一 名词解释
svn一般包括 branch 每个branch版本都要生成对应的tag.例如 branch版本号为1.0.0,那么提交后生成的tag版本号为1.0.0.0;当branch修复bug提交后,tag的版本号为1.0.0.1
trunk trunk一直往前走,不会回滚
tag 供测试使用
branch 自己的分支
milestone 上线使用
二 一般步骤
1 下载
使用 svn co把代码下载下来
使用svn copy 在svn上建立branch目录
使用svn switch 把本地的trunk映射到svn 的brach目录
2 开发
在trunk下开发,在开发过程中不段的把程序svn ci 提交。
3 提交
开发完毕。
新下载一个代码,svn merge trunk 和 branch生成tag
三 实例说明
1 创建branch. 从trunk中获取最新的代码,创建一个自己的branch,进行开发(当有branch后就不需要再打branch了,每天更新即可)
(1)svn copy svn://utils/trunk svn://utils/branches/branch_xiaoming
(2)checkout项目代码, svn checkout svn://utils/
2 开发. 得到branch后,如何开发?
(1)在本地的trunk目录下执行svn switch svn://utils/branches/branch_xiaoming, 如果不用switch将无法共享编译环境。
(2)执行svn info就会发现已经显示在branch下边了,本地目录还是trunk,这个时候的修改提交都是提交到自己的branch
(3) 查看branch 从trunk copy 出来的时间日志,找到版本号:svn log --stop-on-copy
(4)定期从trunk merge 到 branch代码, svn merge svn://utils/trunk@478 svn://utils/trunk (这一步其实直接提交就行了把?????)
(5)最终svn ci到branch中。在提交代码前,一定要确认是在trunk下边还是branch下边
3 打tag. 进行开发、自测,自测通过后打tag提测
打tag之前应该:(1)
(1)svn copy svn://utils/branches/branch_xiaoming svn://utils/tags/tag_2.1.2
(2)注:版本号命名参照版本号命名规范
4 merge到trunk. 测试通过后,merge到trunk,在merge的时候一定要update一下trunk,得到最新的代码。以免把别人的修改给污染了。如果你和别人开发的功能有冲突,那么在merge时小心一些,最好和对方一起确认一下一般就可以了,进行简单的回归测试。(第一种方法:svn的branch merge到svn的trunk上。比较危险?
第二种方法:下载新的代码,然后本地merge branch和trunk 到trunk中,之后再提交)
四 图示
branch
/ |
/ |(1)每天merge trunk到branch
/ |
2)开发结束自测后打tag trunk
\ / |
/ \ |3)tag经测试人员测试后,生成trunk
/ \ |
4)trunk 中打milestone tags(供测试使用)
\ |
\ |
\ |
milestone(上线版本)
SVN简单流程---以公司的使用方法为例的更多相关文章
- SVN简单流程总结
1 创建仓库 2 启动svn服务器 svnserve -d -r 仓库地址(如:D:\SVN\repoDemo1) 3 新的用户第一次与服务器交互时,需要使用checkout将仓库检出到本 ...
- 【转】用CornerStone配置SVN,HTTP及svn简单使用说明
已经安装了的小伙伴请直接看三步骤 一.下载地址 CornerStoneV2.6:http://pan.baidu.com/s/1qWEsEbM密码:www.macx.cn 二.安装破解方法 1.安装之 ...
- 用CornerStone配置SVN,HTTP及svn简单使用说明
转载 http://my.oschina.net/joanfen/blog/194491 一.下载地址 CornerStoneV2.6:http://pan.baidu.com/s/1qWEsEbM密 ...
- ETL流程概述及常用实现方法
ETL流程概述及常用实现方法 http://blog.csdn.net/btkuangxp/article/details/48224187 目录(?)[-] 1抽取作业 1手工开发抽取作业时候的常用 ...
- CornerStone配置SVN,HTTP及SVN简单使用说明
本文转载至 http://blog.csdn.net/allison162004/article/details/38796857 已经安装了的小伙伴请直接看三步骤 一.下载地址 CornerSton ...
- git分布式版本控制系统权威指南学习笔记(一):配置文件、简单流程和小问题
文章目录 git配置文件简介 git config各种命令 配置级别: 用户信息 文本编辑器 差异分析工具 配置命令别名 公钥 git协同流程 简单流程 初始化版本库 提交至缓存区 查看状态 提交分支 ...
- MVC学习一:MVC简单流程
MVC学习一:MVC初次接触 1.MVC简单流程 1.1.服务器接收客户端请求后,解析URL(根据 路由表里配置的URL来分析 类名(控制器名)和方法名)根据请求的类名,创建对应的控制器类对象,并调用 ...
- django入门 -- 简单流程
django入门 -- 简单流程 简介 通过简单示例,使用django完成基本流程的开发,学习django的主要的知识点,在后续课程中会逐个知识点进行深入讲解 以“图书-英雄”管理为示例 主要知识点介 ...
- 从svn资源库目录checkout出maven项目方法
从svn资源库目录checkout出maven项目方法,如下图所示:
随机推荐
- char与varchar、nvarchar区别
char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. nvarc ...
- cfdiv2/c/找规律
题目连接 £:若n<4,NO: £:若n==4,特判,n==5,特判. £:若n>=6,用2-4组成24,1和5和6组成零,即可. #include <set> #includ ...
- sockaddr_u详解
struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; ...
- Jmeter的优点是什么?除了轻量级,它和LoadRunner有什么本质区别
1.jmeter的架构和loadrunner原理一样,都是通过中间代理,监控和收集并发客户端发出的指令,把他们生成脚本,再发送到应用服务器,再监控服务器反馈结果的一个过程: 2.分布式中间代理功能在j ...
- Udp发送
string message = "0302"; byte[] sendbytes = Encoding.ASCII.GetBytes(message); remoteIpep = ...
- js框架——angular.js
这是一个前端用的框架,使用简单.详细介绍这里就不写了,主要介绍其语法和作用—— 1. 声明一个angular 如果想要使用一个angular代码,则需要在[想要使用angular的范围内写上ng-ap ...
- mapreduce 顺序组合
import java.io.IOException;import java.util.StringTokenizer; import org.apache.hadoop.conf.Configura ...
- HBase Coprocessor 剖析与编程实践(转载http://www.cnblogs.com/ventlam/archive/2012/10/30/2747024.html)
HBase Coprocessor 剖析与编程实践 1.起因(Why HBase Coprocessor) HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和. ...
- ios 集合总结
NSArray 用于对象有序集合(相当于是数组) 它有两个限制: 1. 它只能存储objective-c的对象,但不能存储C中的基本数据类型,如int , float, enum, struct等. ...
- CentOS-Desktop版service network restart报错
出错情况: [root@localhost]# service network restart正在关闭接口 eth0: 设备状态:3 (断开连接) ...