eclipse使用svn
主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解
以svn为例,git的master相当于trunk,dev分支相当于branches
--------------------------------------------------------------------------------------------------------------------------------------------
trunk:是用来做主方向开发的一直向前进行,一个新模块的开发,这个时候就放在trunk,当模块开发完成后,需要修改,就用branch。
branch:是用来做并行开发的,这里的并行是指和trunk进行比较。
tag:是用来做一个milestone(里程碑)的,不管是不是发布版本,但都是一个可用的版本,不需要修改如果要修改就要选一个tag进行branche开发。
--------------------------------------------------------------------------------------------------------------------------------------------
为什么要分3个目录?且都是重复的代码Copy有意义吗?来看下下面这个例子就明白这样做的好处了。
例如:开发一个聊天软件QQ,第一期只要求软件具有基本的聊天功能,后期会加入视屏聊天、魔法表情、换皮肤等功能。
当第一期开发完,经测试人员测试后没问题。此时应该给予当前代码库打tag命名为QQ_tag_release_v1.0.0,同时trunk如火如荼进入v2.0.0开发,但是此时经广大用户反馈v1.0.0的QQ登录后经常闪退,由于v2.0.0正在开发即使bug改了也发布不了。那么就要基于QQ_tag_release_v1.0.0的标记(tag)做一个分支(branch)命名为QQ_branch_bugfix_v1.0.0并基于这个分支快速进行BUG修改,等到BUG修改结束后做一个tag命名为QQ_tag_release_v1.0.1,根据需要决定QQ_branch_bugfix_v1.0.0是否合并(Merge)并入主干(trunk)。
步骤:
1、新建svn仓库单项目/多项目仓库都可以,结构如下图这样
2、新建资源库
填写URL仓库地址点击“Finish”
如下
新建qq项目导入svn的trun目录(选中项目右键Team-->Share Projects...)
导入后项目后的svn仓库如下
由于紧锣密鼓的工作v1.0.0终于开发完(v1.0.0只有基本的聊天功能),经测试没有发现问题可以提供给用户使用,同时在此代码库上打一个tag版本命名为QQ_tag_release_v1.0.0
选中项目右键 “Team--> 分支/标记... ” 填写要打tag的版本号后点击”Next“
下一步”Next“
填写注释后点击”Finish“
这时svn资源库tag目录下会多了个QQ_tag_release_v1.0.0
同时trunk如火如荼进入v2.0.0开发,视屏聊天功能正在开发
看一下这时的svn资源库
此时经广大用户反馈v1.0.0的QQ登录后经常闪退,由于v2.0.0正在开发即使bug改了也发布不了。那么就要基于QQ_tag_release_v1.0.0的标记(tag)做一个分支(branch)命名为QQ_branch_bugfix_v1.0.0
选择项目右键 ”Team“-->”切换(S...)“ 选择tags的QQ_tag_release_v1.0.0
更改路径后点击”OK“
已经切换到标记的QQ_tag_release_v1.0.0
接下来要以QQ_tag_release_v1.0.0 为基础创建一个branch名为QQ_branch_bugfix_v1.0.0并基于这个分支快速进行BUG修改
选中项目右键 “Team--> 分支/标记... ” 点击 ”浏览...“ 选择branches目录
填写要创建分支(branch)名为 ”QQ_branch_bugfix_v1.0.0“ 后点击 ”Next“
点击”Next“
填写注释后选中 ”切换工作复本为新的分支/标记“ 后 点击 ”Finish“
看下工作空间的和svn资源库的变化
在branch分支名为 ”QQ_branch_bugfix_v1.0.0“ 中修改bug
提交修改bug后的代码
提交后
闪退bug已经修改可以提供给用户使用了,接下来要再打一个tag命名为 ”QQ_tag_release_v1.0.1“
选中名为”QQ_branch_bugfix_v1.0.0“ 的分支项目右键 “Team--> 分支/标记... ” 点击 ”浏览...“ 选择tags目录
填写要创建标记(tag)名为 ”QQ_tag_release_v1.0.1“ 后点击 ”Next“
点击”Next“
填写注释信息后点击”Finish“
来看看资源库中有什么变化,tags目录下多了一个名为”QQ_tag_release_v1.0.1“ 的标记
下面演示 将 分支(branches) 合并到 主干(trunk)
根据需要决定将分支名为 ”QQ_branch_bugfix_v1.0.0“ 的branch 合并(Merge)并入主干(trunk)。
步 骤:
1. 要想将分支合并到主干,首先需要切换到主干。在项目上面点右键,选择Team — 切换,URL地址为主干的访问路径
(略过。。。 上面有)
2. 在项目上面点右键,选择 ”Team“--> ”合并(M)...“ ,选中“Reinitegrate a branch”。
3. 选择要合并到主干的分支”QQ_branch_bugfix_v1.0.0“
4. 点击”Finish“ 结束合并
5. 点击”OK“
6. 如果想要撤销合并选中项目右键”Undo merge...“
7. trunk中的qq项目下就会多了从分支”QQ_branch_bugfix_v1.0.0“里Merge合并的代码
8. 提交合并后的代码
9. 提交后如下
一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。当下一个版本/阶段的开发任务开始,继续在trunk进行开发。此时,如果发现了上一个已发行版本(ReleasedVersion)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(DevelopingVersion)无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。
eclipse使用svn的更多相关文章
- Eclipse 安装 SVN 的在线插件
这是继上次svn 客户端与服务器安装后的如何在Eclipse 环境下在线安装 SVN插件,我的Eclipse版本是4.50 SVN的在线安装 下面为大家提供SVN 的在线安装教程.下面是安装的 详细过 ...
- Eclipse安装SVN插件
Eclipse 安装最新SVN插件 下载地址 下载最新的Eclipse,我使用的是eclipse-jee-kepler-SR2-win32-x86_64.zip(Eclipse IDE for Jav ...
- Eclipse安装svn插件的几种方式
Eclipse安装svn插件的几种方式 1.在线安装: (1).点击 Help --> Install New Software... (2).在弹出的窗口中点击add按钮,输入Name(任意) ...
- eclipse安装svn和maven插件以及m2e-extras
相关介绍: 1.SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Su ...
- 离线安装eclipse的svn插件
原文:http://blog.sina.com.cn/s/blog_8e037f440101ebmz.html 连接不到外网情况下,在eclipse中安装svn插件. 两种方法: 首先下载安装到ecl ...
- 转: Eclipse使用SVN
评注: 很细节的说明了,svn与eclipse的使用. Eclipse使用SVN 收藏 老黎 发表于 5年前 阅读 35124 收藏 12 点赞 3 评论 6 SVN的功能再多,如果不能有效的 ...
- ECLIPSE下SVN的创建分支/合并/切换使用
最近接项目要求,要在svn主干上创建分支,用分支来进行程序的bug修改,而主干上进行新功能的开发.分支上的bug修改完,发布后,可以合并到主干上.项目程序可以在主干和分支之间进行切换,来实现主干和分支 ...
- Eclipse安装SVN插件方式简明介绍
一.Links安装: 推荐使用此种安装方式,因为它便于插件的管理. 在eclipse根目录下新建文件夹links,这样就得到了eclipse\links 在eclipse\links下新建一个link ...
- Eclipse插件SVN配置
Eclipse插件SVN配置 方法一 打开Eclipse点击[Help]-[Install New Software] 点击右边[Add]-在弹出窗口中输入 Name:svn Location:htt ...
- Eclipse中SVN的安装步骤(两种)和使用方法 [转]
一.给Eclipse安装SVN,最常见的有两种方式:手动方式和使用安装向导方式.具体步骤如下: 方式一:手动安装 1.从官网下载site-1.6.9.zip文件,网址是:subclipse.tigri ...
随机推荐
- datepart in ssis
"\\\\"+_"+ (DT_STR,4,1252)DATEPART( "yyyy" , @[System::StartTime] ) + RIGHT ...
- [转]SDN与OpenFlow技术简介
http://blog.163.com/s_zhchluo/blog/static/15014708201411144727961/ 本文是2012年文章,对Openflow的发展.规范.应用和SDN ...
- 前端“黑话”polyfill
前言 在Web前端开发这个日新月异的时代,总是需要阅读一些最新的英文技术博客来跟上技术的发展的潮流.而有时候会遇到一些比较高频的“黑话”,在社区里面可能已经是人人皆知的“共同语言”,而你接触的少就偏偏 ...
- eclipse使用和快捷键
一.快捷键 - ctrl + shift + o 导包 - ctrl + shift + t 快速查找某个类 - 先按ctrl + 2 ,再点L, 创建变量并命名 - ctrl + o , 在当前类中 ...
- 吴恩达机器学习笔记47-K均值算法的优化目标、随机初始化与聚类数量的选择(Optimization Objective & Random Initialization & Choosing the Number of Clusters of K-Means Algorithm)
一.K均值算法的优化目标 K-均值最小化问题,是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和,因此 K-均值的代价函数(又称畸变函数 Distortion function)为: 其中
- Redis 配置内容总结
命令 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf. 你可以通过 CONFIG 命令查看或设置配置项. (1)config get config_setting_ ...
- JDK设计模式之——策略模式(Comparable和Comparator接口)
策略模式:其实就是java的多态...父类引用指向子类对象. 使用策略模式,改善排序算法上文中需要排序的是一个数组 让他可以对任何类型的数组进行排序 1.利用 接口 Comparable<T&g ...
- eureka相关异常
1. eureka相关异常 1.1. 异常信息 Error creating bean with name 'eurekaAutoServiceRegistration': Singleton bea ...
- SpringCache学习实践
1. SpringCache学习实践 1.1. 引用 <dependency> <groupId>org.springframework.boot</groupId> ...
- 常见的anaconda的操作
以前对anaconda的理解比较少,以为它就是一个比较大的python库,现在发现它原来不止是这样,它还有很多其他用途. Anaconda指的是一个开源的Python发行版本,其包含了conda.Py ...