首先说下为什么我们需要用到分支-合并。比如项目demo下有两个小组,svn下有一个trunk版。由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作【某个模块】,小组2进行新需求的开发。那么此时,我们就可以为小组2建立一个分支,分支其实就是trunk版【主干线】的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过【合并】功能,将分支合并到trunk上来,从而最后合并为一个项目。

下面是在eclipse下使用subeclipse插件详细使用过程: 
首先建立一个工程,名字叫Facebook 
1.建立分支,为新的分支指定访问URL:Facebook3[注释不要忘了] 

2.建立好分之后,使用“切换”功能切换到分支下进行开发。 


我新建了一个FB3.html的文件并在分支下进行提交。 

3.切换回trunk版【即URL为Facebook的版本】 

你会发现trunk版里并没有出现我们刚刚提交的FB3.html,因为FB3.html是属于分支的,接下来我们要做的就是“合并”,通过合并,我们可以将分支下进行的更改合并到trunk版里。

下面是合并的主要配置: 
起始路径:trunk版的路径【若需要把trunk版的改动合并到分支则相反】 
目标路径:从哪里获取改动【这里是分支路径】 
你可以使用指定的版本号,这里采用最新修订版。

4.点击合并,你会发现trunk版下新增了一个文件FB3.html 
这样我们就将分支下所做的改动合并到了trunk版里。 

值得注意的是: 
1.在建立分支的时候最好添加注释。 
2.进行合并前最好保证两个版本都是干净的【即没有未提交或者冲突的文件存在】 
3.合并时的目标路径:需要把谁的改动合并到其他版本就填谁的URL。

整个过程的SVN命令行输出如下: 

  1. copy -rHEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3
  2. propset subclipse:tags "1538,Facebook2,/Facebook2,branch
  3. 1540,Facebook3,/Facebook3,branch" E:/myeclipse/workspace/Facebook
  4. switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3 E:/myeclipse/workspace/Facebook -rHEAD
  5. At revision 1541.
  6. add -N E:\myeclipse\workspace\Facebook\WebRoot\FB3.html
  7. A         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  8. commit -m "" E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  9. Adding         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  10. Transmitting file data ...
  11. Committed revision 1542.
  12. switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook E:/myeclipse/workspace/Facebook -rHEAD
  13. D  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  14. Updated to revision 1542.
  15. ===== File Statistics: =====
  16. Deleted: 1
  17. merge svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook@HEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3@HEAD E:/myeclipse/workspace/Facebook
  18. A  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  19. Merge complete.
  20. ===== File Statistics: =====
  21. Added: 1
  1. <span style="font-size:12px;">copy -rHEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3
  2. propset subclipse:tags "1538,Facebook2,/Facebook2,branch
  3. 1540,Facebook3,/Facebook3,branch" E:/myeclipse/workspace/Facebook
  4. switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3 E:/myeclipse/workspace/Facebook -rHEAD
  5. At revision 1541.
  6. add -N E:\myeclipse\workspace\Facebook\WebRoot\FB3.html
  7. A         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  8. commit -m "" E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  9. Adding         E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  10. Transmitting file data ...
  11. Committed revision 1542.
  12. switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook E:/myeclipse/workspace/Facebook -rHEAD
  13. D  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  14. Updated to revision 1542.
  15. ===== File Statistics: =====
  16. Deleted: 1
  17. merge svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook@HEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3@HEAD E:/myeclipse/workspace/Facebook
  18. A  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
  19. Merge complete.
  20. ===== File Statistics: =====
  21. Added: 1
  22. </span>

希望本文能有所帮助。 
其他参考资料: 
http://www.iteye.com/wiki/subclipse/1626-subclipse-getting-started-guide-and-reference-c

===========================关于合并========================== 
我在合并的时候发现,合并后文件被直接覆盖掉了,而没有出现本该出现的【冲突】,后来经过仔细研究发现,是操作问题。


假设我原来的项目是placii,建立了一个分支是placiiStore.现在需要将分支placiiStore合并到主干线上。那配置应该如图所示 
1.【起始路径】:这里需要填分支的路径。 
2.第一个修订号:建立分支时的版本号。在建立分支时候记录下svn的console 
我的是

  1. copy -rHEAD svn://192.168.1.192/placii/trunk/code/server/source%20code/placii svn://192.168.1.192/placii/trunk/code/server/source%20code/placiiStore
  2. propset subclipse:tags "1527,placiiStore,/source code/placiiStore,branch
  3. 1549,placiiStore,/source%20code/placiiStore,branch" E:/myeclipse/workspace/placii
  4. switch svn://192.168.1.192/placii/trunk/code/server/source code/placiiStore E:/myeclipse/workspace/placii -rHEAD
  5. At revision 1550.
  1. <span style="font-size:12px;">copy -rHEAD svn://192.168.1.192/placii/trunk/code/server/source%20code/placii svn://192.168.1.192/placii/trunk/code/server/source%20code/placiiStore
  2. propset subclipse:tags "1527,placiiStore,/source code/placiiStore,branch
  3. 1549,placiiStore,/source%20code/placiiStore,branch" E:/myeclipse/workspace/placii
  4. switch svn://192.168.1.192/placii/trunk/code/server/source code/placiiStore E:/myeclipse/workspace/placii -rHEAD
  5. At revision 1550.</span>
3.目标路径:这里使用起始路径。 
4.目标版本号:使用最新版即 HEAD.

点击合并,如果有人在主干线版本上做了更改,而你再分支上也对这个文件作了更改,将会产生冲突。然后手动把冲突的代码合并一下,右键-标记为解决,这就达到我们的目的了。

SVN使用教程之——分支、合并的更多相关文章

  1. SVN使用教程之-分支/标记 合并 subeclipse (转)

    首先说下为什么我们需要用到分支-合 并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正 进行到一半的工作[ ...

  2. SVN使用教程之-分支/标记 合并 subeclipse

    首先说下为什么我们需要用到分支-合并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作[某个 ...

  3. SVN的使用、分支合并及解决冲突详解

    一.什么是SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 二.SVN的下载安装 下载地址:http ...

  4. eclipse 上Svn将项目从分支合并到主干的方法

    eclipse svn 分支合并到主干   最近公司产品上线,整个系统架构包含有七八个子系统,并且子系统都是集群部署.所以每次升级维护都要确保尽可能不出问题.因为整个系统刚上线不久,意味着新系统不定期 ...

  5. (转)SVN分支/合并原理及最佳实践

    先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...

  6. ECLIPSE下SVN的创建分支/合并/切换使用

    最近接项目要求,要在svn主干上创建分支,用分支来进行程序的bug修改,而主干上进行新功能的开发.分支上的bug修改完,发布后,可以合并到主干上.项目程序可以在主干和分支之间进行切换,来实现主干和分支 ...

  7. 关于SVN版本分支合并的知识

    分支的合并类型 合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里.如果当前工作副本是主干,则合并的范围是分支上的改动, ...

  8. eclipse中SVN分支合并到主干

    在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. 1. 要想将分支 ...

  9. windows 下svn 创建分支 合并分支 冲突

    我用的系统是win7+Subversion 1.7.4.服务器搭建就略过了,我也是从网上找的,基本上就是几个命令吧!我用的CentOs6.5 .网上找了几个命令搭建很快,基本上是: 1.# sudo  ...

随机推荐

  1. Windows Phone中用到的类名及对应的命名控件及引用

    //INotifyPropertyChanged using System.ComponentModel; //ICommand using System.Windows.Input; //Actio ...

  2. 【HeadFirst设计模式】12.复合模式

    定义: 复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题. 要点: MVC模式是复合模式,结合了观察者模式.策略模式和组合模式. 模型使用了观察者模式,以便观察者更新,同时保存 ...

  3. thinkphp autoload 命名空间自定义 namespace

    使用thinkPHP过程中,一些自定义的类库和第三方类库需要找一个合适的位置放置,放到系统默认的org文件夹感觉不太好,破坏了thinkPHP的原生目录. 就看了一下官方手册,可以在模块或者应用的配置 ...

  4. sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL\data\itsm_Data.MDF'。数据库 'my1' 正在使用该文件的解决方案

    对数据库备份进行还原时遇到“sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQ ...

  5. Centos7 设置IPtables

    entOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fire ...

  6. js 框架都有哪几种(转载)

    目前来看,js框架以及一些开发包和库类有如下几个,Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fxD ...

  7. LESS语法备忘

    变量 很容易理解: @nice-blue: #5B83AD; @light-blue: @nice-blue + #111; #header { color: @light-blue; } 输出: # ...

  8. AngularJS(3)-过滤器

    过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中.. 1.uppercase/lowercase 大小写过滤器 2.currency过滤器 3.向指令添加过滤器 过滤器可以通过一个管道字符( ...

  9. 4个好用的JS联动选择插件

    jQuery City Select 一个简单的jQuery省市联动插件,可以自定义JSON字典实现其他内容的联动选择菜单. PCAS省.市.地区联动选择JS封装类 PCAS可能是国内使用人数最多的J ...

  10. 2014年度辛星html教程夏季版第五节

    如果读者是一位后台开发者,那么肯定会知道什么叫表单,这里我们就介绍一下前台如何使用表单,表单的使用也是我们编写网页的必须经历的一关,而且,表单也往往是我们网站的漏洞和弱点出现的地方. ******** ...