使用SVN+Eclipse做软件版本控制。 (2009年5月)

1,SVN目录结构

Trunk : 主干目录,此目录下的文件为基准文件 Branches : 用于开发的分支目录 Tags : 用于发布的版本目录

下图是基于eclipse svn repositores查看的目录结构

(图片1 : 目录结构)

2,分支的版本

Branches 的定义规则: project name + 日期时间 + 功能点 , 比如 sns-home_20090506_profile , 在创建每一个branch时,必须增加标注。

3,创建新分支

(图片2 : 开始创建分支)

(图片3 : 选择分支命名和SVN 资源路径)

(图片4 : 选择从HEAD revision 或者指定的revision 开始生成分支)

(图片5 : 必须为本分支增加标注)
(图片5 _ 1 : 标注分支)

4,从分支合并到主干

1、当branch版本已经开发和通过测试后,可以通过subeclipse 合并到trunk,可以合并整个项目也可以合并单个文件, 如下图

(图片8 : 多个分支都有改动)

2、如上图,Hi.java文件有改动,那我们就选中 *trunk*下的Hi.java文件(注意不是分支下的Hi.java),然后右击选择team->merge命令

(图片9 : 开始merge)

3、选择merge后弹出如下对话框,具体说明如下,

  1. 第一个红框
    1. 上面部分选择当前文件(项目)对应的分支上的文件(项目),可以通过后面的select按钮选择
    2. 下面部分选择合并的起始版本,一般就是建立分支时的版本就ok,(具体哪个版本根据建立分支时填写的备注即可得知)
  1. 第二个红框默认选中,可以不用管
  2. 第三个红框,就是选择分支上的稳定的版本
    1. 如果确定最后的版本是稳定的,就勾选【Merge to HEAD revision】
    2. 如果最后的版本不是稳定的,那可以选择之前某个稳定的版本即可,可以通过后面的select按钮选择

确认之后点击"Merge",然后开始执行合并操作。

(图片10 : 选择分支以及分支的开始和结束版本)

4、合并完成之后,本地trunk下的文件将会被更新, 注意这里只是合并到本地,还需要你再检查一下合并后的文件是否正确,再次确认后需要使用Team->commit 来提交合并后的内容。

5、建议合并后,再在trunk下对修改过的内容进行测试,最好一个点一个点的进行测试,保证合并后的内容是稳定无误的。

5,标注新版本

(图片6 : 新版本的路径)

(图片7 : 新版本的定义规则)

(图片11 : 合并之后打tag)

6,参考资料

http://subclipse.tigris.org/branch_tag.html   http://wenku.baidu.com/view/a03f2aeab8f67c1cfad6b8d3.html

7,后记

Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。
Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。
RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。
GA :General Availability,正式发布的版本,在国外都是用GA 来说明release版本的。
RTM:(Release to Manufacture)是给工厂大量压片的版本,内容跟正式版是一样的,不过RTM版也有出限制、评估版的。但是和正式版本的主要程序代码都是一样的。
OEM:是给计算机厂商随着计算机贩卖的,也就是随机版。只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。包装不像零售版精美,通常只有一面CD和说明书(授权书)。 
RVL:号称是正式版,其实RVL根本不是版本的名称。它是中文版/英文版文档破解出来的。 
EVAL:而流通在网络上的EVAL版,与“评估版”类似,功能上和零售版没有区别。 
RTL:Retail(零售版)是真正的正式版,正式上架零售版。在安装盘的i386文件夹里有一个eula.txt,最后有一行EULAID,就是你的 版本。比如简体中文正式版是EULAID:WX.4_PRO_RTL_CN,繁体中文正式版是WX.4_PRO_RTL_TW。其中:如果是WX.开头是 正式版,WB.开头是测试版。_PRE,代表家庭版;_PRO,代表专业版。
α、β、λ常用来表示软件测试 过 程中的三个阶段,α是第一阶段,一般只供内部测试使用;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给 特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。

SVN版本控制与分支设置的更多相关文章

  1. 解决版本冲突-使用SVN主干与分支功能

    解决版本冲突-使用SVN主干与分支功能 1  前言 大多数产品开发存在这样一个生命周期:编码.测试.发布,然后不断重复.通常是这样的开发步骤: 1)    开发人员开发完毕某一版本(如版本A)功能后, ...

  2. [0] 解决版本冲突-使用SVN主干与分支功能

    解决版本冲突-使用SVN主干与分支功能 1  前言 大多数产品开发存在这样一个生命周期:编码.测试.发布,然后不断重复.通常是这样的开发步骤: 1)    开发人员开发完毕某一版本(如版本A)功能后, ...

  3. 【Java EE 学习 43】【SVN版本控制工具】【CVS版本控制工具】

    一.SVN SVN服务器下载地址:https://subversion.apache.org/ 1.什么是版本控制:版本控制是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若 ...

  4. SVN版本控制工具使用学习

    SVN版本控制工具使用学习 Subversion是优秀的版本控制工具. 1.下载和搭建SVN服务器 http://subversion.apache.org/packages.html 类型有5种,推 ...

  5. 基于腾讯Centos7云服务器搭建SVN版本控制库

    基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费空间 ...

  6. CentOS下 SVN版本控制的安装(包括yum与非yum)的步骤记录。

    一.yum安装 rpm -qa subversion //检查是否安装了低版本的SVN yum remove subversion //如果存储旧版本,卸载旧版本SVN 开始安装 yum -y ins ...

  7. SVN版本控制图标未显示或显示异常解决方法

    SVN版本控制图标未显示问题解决方法,刚开始遇到这个问题的时候,好苦恼.经过“千辛万苦”的努力,终于得以解决,分享给大家,希望能帮到各位哦! 工具/原料   SVN安装包 方法/步骤     首先安装 ...

  8. 如何在一个ubuntu系统上搭建SVN版本控制工具

    有话说,由于公司项目部署需要,将Windows工程迁移到Linux,通过调查确定使用Ubuntu的Linux操作系统.那么如何快速搭建和Windows一样快捷方便的开发环境就很重要了.本文讲述如何在一 ...

  9. [转]将已有项目代码加入svn版本控制

    原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...

随机推荐

  1. Threejs 物体闪烁

    摸索经验告诉我,对物体的材料关闭深度检测有奇效. 即: depthTest: false 有同类问题的童鞋可以试试.

  2. BZOJ 1227 【SDOI2009】 虔诚的墓主人

    Description 小W 是一片新造公墓的管理人.公墓可以看成一块 \(N×M\) 的矩形,矩形的每个格点,要么种着一棵常青树,要么是一块还没有归属的墓地.当地的居民都是非常虔诚的基督徒,他们愿意 ...

  3. XML中输入特殊符号

    XML中输入特殊符号 周银辉 特殊符号比如 ™, 要在xml中使用的话, 其实和html的转码是一样的, 参考下面这个表(使用十进制编码那一列) 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十 ...

  4. TCP connect的错误返回值

    如果是TCP套接字,调用connect函数将激发TCP三次握手过程,而且仅在连接建立成功或出错时返回,其中错误返回可能有下面几种情况: (1)若TCP客户没有收到SYN分节的响应,则返回ETIMEDO ...

  5. CSS水平居中/垂直居中的N个方法

    我看最近微博流行CSS居中技术,老外码农争相写相关的文章,一篇赛一篇的长啊,我把几篇归纳总结了一下,算是笔记. 孔乙己曾说:"茴香豆的回字有四种写法",万一哪天有个面试官问你:&q ...

  6. js的this上下文的坑

    很明显,this这个坑,在多层嵌套的时候还是一样被废,不管是call, apply还是bind. 例如: var fun = function() { this.name = 'test'; var ...

  7. MyBatis的Mapper文件的foreach标签详解

    MyBatis的Mapper文件的foreach标签用来迭代用户传递过来的Lise或者Array,让后根据迭代来拼凑或者批量处理数据.如:使用foreach来拼接in子语句. 在学习MyBatis M ...

  8. java中Integer,String判断相等与integer的比较大小

    package sfk.bbs.test.springjsbctempletTest; import static org.junit.Assert.*; import org.junit.Test; ...

  9. Beta阶段第五次Scrum Meeting

    情况简述 BETA阶段第二次Scrum Meeting 敏捷开发起始时间 2016/12/15 00:00 敏捷开发终止时间 2016/12/16 00:00 会议基本内容摘要 平稳推进 参与讨论人员 ...

  10. 分析移动端APP的网络请求抓包

    为了方便,本文以 iOS 系统来进行演示. 使用代理 移动操作系统中都有可以设定系统代理的设置,比如在 iOS 中可以通过 Settings->WLAN 看到很多 Networks,通过点击它们 ...