首先说下为什么我们需要用到分支-合 并。比如项目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命令行输出如下:

    copy -rHEAD svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3
propset subclipse:tags "1538,Facebook2,/Facebook2,branch
,Facebook3,/Facebook3,branch" E:/myeclipse/workspace/Facebook
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3 E:/myeclipse/workspace/Facebook -rHEAD
At revision .
add -N E:\myeclipse\workspace\Facebook\WebRoot\FB3.html
A E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
commit -m "" E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Adding E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Transmitting file data ...
Committed revision .
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook E:/myeclipse/workspace/Facebook -rHEAD
D E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Updated to revision .
===== File Statistics: =====
Deleted:
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
A E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Merge complete.
===== File Statistics: =====
Added: <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
propset subclipse:tags "1538,Facebook2,/Facebook2,branch
,Facebook3,/Facebook3,branch" E:/myeclipse/workspace/Facebook
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3 E:/myeclipse/workspace/Facebook -rHEAD
At revision .
add -N E:\myeclipse\workspace\Facebook\WebRoot\FB3.html
A E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
commit -m "" E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Adding E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Transmitting file data ...
Committed revision .
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook E:/myeclipse/workspace/Facebook -rHEAD
D E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Updated to revision .
===== File Statistics: =====
Deleted:
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
A E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Merge complete.
===== File Statistics: =====
Added:
</span>

希望本文能有所帮助。

其他参考资料:
http://www.iteye.com/wiki/subclipse/1626-subclipse-getting-started-guide-and-reference-c

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


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

    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
propset subclipse:tags "1527,placiiStore,/source code/placiiStore,branch
,placiiStore,/source%20code/placiiStore,branch" E:/myeclipse/workspace/placii
switch svn://192.168.1.192/placii/trunk/code/server/source code/placiiStore E:/myeclipse/workspace/placii -rHEAD
At revision . <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
propset subclipse:tags "1527,placiiStore,/source code/placiiStore,branch
,placiiStore,/source%20code/placiiStore,branch" E:/myeclipse/workspace/placii
switch svn://192.168.1.192/placii/trunk/code/server/source code/placiiStore E:/myeclipse/workspace/placii -rHEAD
At revision .</span>  
3.目标路径:这里使用起始路径。
4.目标版本号:使用最新版即 HEAD.

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

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

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

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

  2. 转 Eclipse下svn的创建分支/合并/切换使用

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

  3. [SVN]两个分支合并

    Date:2014-1-1 Summary: 记录一下自己使用SVN时候的操作步骤,先吃鱼,再学钓鱼 Contents: 环境:从同事的branch迁出一份代码,作为自己的分支进行开发,同时同事也在自 ...

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

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

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

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

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

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

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

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

  8. SVN版本分支合并

    SVN,开发中常用的工具,也没什么可说的.这里只是记录一下,以免太久不用了想用的时候又忘了. 首先已经有两个目录,一个是分支目录SVNChild,一个是主干目录SVNMain.SVNChild是从SV ...

  9. 图文:eclipse中SVN分支合并到主干

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

随机推荐

  1. How to Notify Command to evaluate in mvvmlight

    How to Raize Command to evalituate in mvvm In mvvmlight, we bind our control to the relaycommand obj ...

  2. iOS 进阶 第二十一天(0531)

    0531 - Autolayout 不仅可以做屏幕适配还可以做系统适配 uidynamic 做物理动画.能做的效果如下图: Autolayout Autolayout 是一种“自动布局”技术,专门用来 ...

  3. LintCode-Search for a Range

    Given a sorted array of integers, find the starting and ending position of a given target value. You ...

  4. background-clip

    background-clip 用来将背景图片做适当的裁剪以适应实际需要. 语法: background-clip : border-box | padding-box | content-box | ...

  5. JavaScript DOM动态创建(声明)Object元素

    http://www.cnblogs.com/GuominQiu/archive/2011/04/01/2002783.html 一文提及“等整个页面加载完毕后,根据用户所选的阅读机类型,再用Java ...

  6. 互联网产品设计常用文档类型-BRD、MRD、PRD、FSD (

    BRD Business Requirements Document,商业需求文档.这是产品声明周期中最早的问的文档,再早就应该是脑中的构思了,其内容涉及市场分析,销售策略,盈利预测等,通常是和老大们 ...

  7. GitHub教程--上传项目四步法 GitBash命令行下使用方法

    之前就用过GitHub,感觉用GitHub托管自己的代码非常不错.可是之前用的都是窗口化的TortoiseGit,省了很多命令行的操作,但是个人非常喜欢使用命令行,于是,今天就试着用了用GitBash ...

  8. CSS3选择器学习笔记

    CSS选择器总结: 一.基本选择器 1.通配选择器:[  *  ]        选择文档中所以HTML元素. *{margin: 0;padding: 0;} /*选择页面中的所有元素并设置marg ...

  9. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) D Bear and Two Paths

    题目链接: http://codeforces.com/contest/673/problem/D 题意: 给四个不同点a,b,c,d,求是否能构造出两条哈密顿通路,一条a到b,一条c到d. 题解: ...

  10. 【BZOJ】【3473】字符串

    后缀数组 Orz zyf 神题不会做啊,先坑着吧……sigh //BZOJ 3473 #include<vector> #include<cstdio> #include< ...