eclipse svn 分支合并到主干
最近公司产品上线,整个系统架构包含有七八个子系统,并且子系统都是集群部署。所以每次升级维护都要确保尽可能不出问题。因为整个系统刚上线不久,意味着新系统不定期有BUG需修复,但新功能模块也在持续的开发中(可能持续的时间还不短),所以就引发一个问题:持续开发的新功能代码与生产上的代码 如何进行隔离开来进行维护,而且二者还需要不定期的合并代码。所以就研究了下SVN分支。
首先需厘清SVN的分支以下几个概念:
trunk: 主干(可以理解为开发环境的代码,平常做开发的工作目录)
branches:从主干拷贝了一份代码重新在svn服务器上的建了个分支目录(通常叫branch,一般与生产上的代码保持同步)
tag:主干版本标记(标识每次大的升级版本号)。
我们项目目前的版本管理策略如下(可以根据自已的项目实际需要建立不同的版本管理策略):
1、系统在没有上线之前,只有一个主干(trunk),所有开发人员在主干上进行协同开发。
2、系统上线之后,在主干的基础上创建一个分支,该分支上主要用于修复生产环境的BUG,或者紧急新功能上线。主干仍然进行新功能模块的开发。
3、每次生产环境的升级,都从分支上进行打包部署。升级完之后需将分支上改动的代码及时合并到主干上(开发人员常常忘记,切记)。
4、新功能在主干上开发好了,需要进行一次大的升级,可以先将主干打上一个TAG做为大版本号,并且同时在此基础上创建一个对应的分支,然后切换到分支上进行打包部署,这个版本的生产代码维护也在分支上。
原则:分支用于生产代码维护,主干用于平时开发,TAG用于主干大版本的标记。
由于我们项目由好几个子系统构成一个大的集群系统,系统之间的版本统一就显得很重要。所以每次上线,即使相关子系统没有代码改动,也需要重新建立一个分支版本以适应其它子系统的版本改动。
说了这么多之后,来说下具体分支合并到主干上的操作,因为这部分最容易出错:
合并根据目标不同分为2种:
1、分支合并到主干:主要用在修复完生产BUG,并上线之后。需把改动的代码合并到主干上。
2、主干合并到分支:公用的逻辑改动,需反映到所有并行的分支上。
注意:合并是要在目标目录上进行操作的,如:分支合并到主干(主干为目标),需切换到主干上操作合并功能,主干合并到分支(分支为目标),需切换到分支上进行操作。
分支合并到主干的具体步骤:
1、主干目录右键选择合并

出现以上6个合并选项,
第一个选项:合并指定的版本,可以是从分支合并到主干,也可以是主干合并的版本,主要作用把分支的部份修改合并到主干上。
第二个选项:复兴分支,这里会把分支上所有的需改都合并到主干上。如果只想合并修改的一部分,并适合这项。
第三个选项:将主干上的修改合并到分支。
第四个选项:2个不同的分支合并,但其实也可以是分支和主干的合并,只要from选择为主干就行。
通常选择第一项或第四项进行操作,这里需要注意的是:
这里其实就是比对TO版本和FROM版本的差异,并把差异合并到TO的当前版本(head版本)中去。
注:如果要把分支所有的修改合并到主干上,FROM需要选择主干创建见分支时的版本号,TO选择分支最新版本(head版本)就行了。
如果FROM也选择主干head版本,TO也选择head版本,就会把所有分支与主干不同的差异覆盖到当前主干上来。造成主干的文件被分支覆盖。
合并当中出现:
no uncommited modified :表示当前版本还有没有提交的文件,如果不需要提交就选择revert.
working copy at a single version:表示当前目录没有从SVN服务器更新最新的版本。update下后在操作就行了。
很久没有写这么长的文章了,希望对大家有帮助。
eclipse svn 分支合并到主干的更多相关文章
- eclipse中SVN分支合并到主干
在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. 1. 要想将分支 ...
- 图文:eclipse中SVN分支合并到主干
在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. 1. 要想将分支 ...
- SVN:分支合并到主干
合并日志: --- Merging r173674 through r175986 into '.': C src/test/java/com/test/rigel/sandbox/organizat ...
- eclipse 上Svn将项目从分支合并到主干的方法
eclipse svn 分支合并到主干 最近公司产品上线,整个系统架构包含有七八个子系统,并且子系统都是集群部署.所以每次升级维护都要确保尽可能不出问题.因为整个系统刚上线不久,意味着新系统不定期 ...
- eclipse svn分支与合并操作
以前做项目的时候没有用过svn的分支合并操作,今天用到了,刚开始还真不会啊.最后查了下就是这么的方便.专门记录下来. 原文来自:http://blog.csdn.net/lisq037/article ...
- (转) 对svn分支合并类型和深度的理解
合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里.如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分 ...
- SVN分支合并指南
SVN分支合并主干具体操作步骤 1. 在装有svn插件的myeclipse中,在主干上选择需要合并的文件或文件夹, 右击--> team -->合并(merge) 2.选择合并类型--合并 ...
- 关于Eclipse SVN 分支 与主干 小结
SVN建立分支和合并代码 https://blog.csdn.net/luofeixiongsix/article/details/52052631 SVN创建指定版本号的分支 https://blo ...
- svn分支开发与主干合并(branch & merge)
下面我将step by step地演示如何一次完整的branching和merging,包括创建分支.分支开发.分支和主线同步,分支合并到主线的全过程,甚至包括如何在本地创建一个测试用的reposit ...
随机推荐
- 按需要对Androguard进行定制增强
按需对Androguard进行增强和定制修改 Androguard是一个对android应用程序进行分析的基于python的平台,功能强大.但是在使用的过程中,提供的功能不一定如我们所需,所以需要进行 ...
- ASP.NET中的配置文件
ASP.NET中的配置文件 原创 2014年10月13日 08:15:27 1199 在机房收费系统的时候曾经应用过配置文件,当时也就那么一用对配置文件了解的不是很透彻,下面就来总结一下有关配置文 ...
- C#中的里氏替换原则
里氏转换原则 子类可以赋值给父类对象 父类对象可以强制转化为对应的子类对象 里氏替换原则直观理解就是"子类是父类",反过来就说不通了. 就像男人是人对的,但人是男人就不对了. 这样 ...
- asp.net core mvc视频A:笔记2-1.控制器定义
方式一:以Controller结尾 方式二:不以Controller结尾 思考 默认路由规则为 运行示例(这里不需要写testcontroller,只写test就可以了) 同理测试test类中的控制器 ...
- PHP框架认识初步
PHP框架比較 CodeIgniter Codeigniter 相当轻量级.下载下来就能用, CI 的最大特点就是可扩展性非常强 你能够通过不改动源代码的方式 优雅的扩展差点儿全部的东西. think ...
- mysql主从从
1.从官网下载安装percona-xtrabackup2.xtrabackup只能备份和恢复innodb的表,所以这里用innobackupex,可以实现对myisam和innodb的表在线备份和恢复 ...
- Android实现一键获取课程成绩dome
欢迎转载但请标明出处:http://blog.csdn.net/android_for_james/article/details/50984493 两周废寝忘食的创作最终成功了,如今拿出来分享一下. ...
- [Java]事件驱动程序设计
事件驱动模型三大要素 1)事件源:能接收外部事件的源体: 2)监听器xListener:能接收事件源通知的对象: 3)处理器Handler:用于处理事件的对象. 在Java中使用监听器对象处理事件的方 ...
- pwd 命令
Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...
- Android下的数据存储与访问、权限
弹出吐司 在onCreate中可以先获取控件对象 /data/data/程序的包名/ 在这个目录下面进行文件的读写可能因为包名的改变而变得不可靠. this可以是Activity,也 ...