以下为分支、主线均有改动情况
源该地址:http://blog.csdn.net/tearsmo/article/details/6778143
本节向大家简单描述一下SVN分支和合并方面的知识,在学习SVN的过程中SVN分支和合并时经常遇到的问题,在这里和大家分享一下,希望本文对大家有用。
关于主线同SVN分支合并的概念及如何使用的误区此问题是在netbuddy的问题上研究而成,走出误区的过程中得到了pcplayer指点迷津。
一、我的合并需求
在主线的第54个版本上作了分支,在接下来的日子里,主线和分支同时都有修改,此时需要将分支上的改动合并到主线上,合并前主线和分支都已经提交,截至到合并前,主线的修改达到了版本号66,而分支的修改达到了68。主线和分支修改的文件不同。
二、我最初的错误操作
我当时的想法是合并,就是简单的把主线的最新版本和分支的最新版本合在一起就成了,而且这也是符合我们的手工习惯。于是我就作出了一个错误的操作:
1、在SVN分支的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择主线的最新版本,在结束路径中选择分支的最新版本,然后单击合并,合并后,提示框内没有任何合并的内容。
2、上个操作不成功,于是胡乱进行这个操作,在主线的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择分支的最新版本,在结束路径中选择主线的最新版本,然后单击合并,合并后,提示框内没有任何合并的内容。
3、发现第2个操作仍没有结果,更晕,于是进行下面的操作,在主线的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择主线的最新版本,在结束路径中选择分支的最新版本,然后单击合并,合并后,提示框内提示有文件更新,打开更新的文件一看,原来是分支上的内容把主线上的工作副本覆盖了。于是进行下一个实验。
4、在SVN分支的工作副本上单击右键,选择合并,出现合并对话框,在起始路径和版本号中选择分支的最新版本,在结束路径中选择主线的最新版本,然后单击合并,合并后,提示框内提示有文件更新,打开更新的文件一看,原来是主线上的内容把分支上的覆盖了。
总结操作问题:合并的起始和结束路径不是同一路径,而是主线和分支两个不同的路径
三、我把这个问题发到论坛,pcplayer指出了我的错误,即“起始选择主线的最新版本,结束使用分支的最新版本”,并指明“应该选择一条线上的两个版本,这两个版本间的改动会以打补丁的形式合并到另外一条线上”,于是看了一遍subversion中文手册svnbook1.2版中第4章分支与合并,终于理解了合并的使用:
1、如果是需要将主线的改动合并到SVN分支上,需要在分支的工作副本下进行合并,合并的范围是需要从主线上上次合并的版本到当前主线上最新的版本,如果主线和分支都修改了相同的文件,合并后会出现冲突,然后解决冲突,如果主线修改但是分支没有修改,则主线上合并的变更内容会增加到当前副本中,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号
2、相反,如果是需要将分支的改动合并到主线上,需要在主线的工作副本下进行合并,合并的范围是需要从分支上上次合并的版本到当前分支上最新的版本,合并后会出现冲突(冲突的前提如上种情况),然后解决冲突,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号
3、正确的操作(对应我的需求,将分支上的改动合并到主线上):在主线的工作副本下单击右键,合并,在起始范围中选择分支的54版本,结束范围中选择分支的最新版本(当然也可以修改到中间的其他版本,例如65等),然后单击合并即可。由于我的需求中主线和分支修改的是不同的文件,所以不会存在冲突,合并完后直接提交即可。
四、合并的工作是把主线或者分支上合并范围内的所有改动列出,并对比当前副本的内容,由合并者手工修改冲突。如果当前工作副本是主线的,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主线上的改动。
以下为分支有改动,主线无改动情况
源文地址:http://huqilong.blog.51cto.com/53638/465988
之前一直使用"小乌龟"进行分支建立与合并,最近切换到linux下开发,没有"小乌龟"了,只好看下eclipse的svn插件关于分支的建立与合并。
首先说说创建分支,很简单,不过是浅copy一个trunk目录到branches下即可.如下图所示:
右键你的工程==>team==>分支/标记
弹出如下信息:
此框告诉你从哪里copy到哪里,这里我们从trunk位置copy到branches目录,点击ok即可搞定创建,如果你勾选了下面的switch working copy to new branch/tag,eclipse 会自动切换到分支下.这里我们不选择,待会自己切换.
ok,分支建立好了,我们来查看下当前svn的目录结构,应该如下图所示:
可以看到branches里面多了一个cms2.0
现在让我们手工切换到cms2.0分支下进行开发:
右键你的工程==>team==>切换==>
在窗口中填写你的分支路径,点击ok.
现在我们切换到了cms2.0 下了,开始开发吧,加入我们更新了pom.xml这个文件,我们在里面添加了一行比如aaaaaaaaaaaa,然后提交上去. 开发完毕,我们现在要切换回主干,也就是trunk下,按照上面的方法切换回去:
ok,现在就要把分支上的东西合并到主干了,怎么办呢。
右键单击你的工程==>team==>合并,然后弹出如下对话框:
上面的“起始路径”是指你要合并到的路径,这里我们选trunk下的cms
下面的目标路径是被合并的,也就是你的分支
“最新修订版” 与 “修订版” 必须选择一个,如果你选定了“修订版”而又没有填写版本号,合并按钮不可用,这里我们选择“最新修订版”,然后点击合并.
好了,现在看看,在branches下编辑的pom.xml文件时候被合并到trunk上了。
svn通常的做法是:首先尝试自动合并,如果自动合并搞定的话,只直接进行合并了,否则,需要人工干预,进行冲突解决.
大致这样子,tags下的操作差不多吧,只不过tags下的文件默认是只读的不能编辑.
写了有一会,看完给回个贴吧.多谢.
相关推荐
3. 操作分支合并到主干,参照上边的操作步骤,最后会出现下边的弹窗。 4. 选择第一项:Mark as conflicted. I will deal with it later 是先更新,稍后冲突解决,生成三个文件。 五、结论 通过本文的讲解,已经...
在Eclipse中通过Subversion (SVN) 创建分支是一种常见的版本控制操作。以下是具体的步骤: 1. **选择项目**: - 在Eclipse中打开您的项目。 - 右键点击您想要创建分支的项目,选择`Team` -> `Branch/Tag`。 2. *...
Eclipse SVN插件是开发人员在使用Eclipse IDE进行版本控制时的重要工具,它使得开发者能够在Eclipse环境中方便地与Subversion(SVN)服务器进行交互。本压缩包"eclipse_svn_site-1.10.5.zip"提供的是Eclipse SVN插件...
Eclipse SVN插件是开发人员在使用Eclipse IDE时用于版本控制的重要工具,它与Subversion(SVN)系统紧密集成,使得代码的版本管理和协同工作变得更加便捷。Subversion是一种开源的版本控制系统,用于跟踪文件和目录...
### Eclipse下SVN使用操作全解析 ...总之,通过细致地准备与操作,SVN能在Eclipse环境下有效管理项目版本,提升团队协作效率。无论是初学者还是有经验的开发者,掌握SVN的基础与进阶操作都是十分必要的。
Eclipse-svn插件是Eclipse IDE的一个扩展,它使开发者可以直接在Eclipse内部进行SVN操作,而无需离开开发环境。 首先,安装eclipse-svn插件是使用SVN的关键步骤。通常,这可以通过Eclipse的“帮助”->“安装新软件...
Subversion(简称SVN)就是一种流行的版本控制系统,而Eclipse中的SVN插件则提供了在Eclipse环境下与SVN服务器交互的功能。 标题"eclipse 中文svn插件"指出我们要讨论的是Eclipse中支持中文界面的SVN插件。在默认...
在Eclipse中集成SVN客户端插件,可以方便地进行版本控制操作,如代码的提交、更新、合并等。 标题"svn 64 用于eclipse"指的是将64位版本的SVN客户端与Eclipse IDE整合使用。64位版本通常适用于处理大量数据或需要更...
"svn拉分支合并文档" SVN(Subversion)是一种开放源代码的版本控制系统,相比RCS和CVS,它采用了分支管理系统。SVN的主要特点是支持分布式版本控制,能够对文件和目录进行版本控制。 svn目录结构: * 每个子系统...
3. **版本控制:** 通过Eclipse的团队菜单,你可以进行提交、更新、比较、合并、回滚等SVN操作,无需离开Eclipse界面。 4. **冲突解决:** 如果多人同时修改了同一部分代码,Subversive会标记出冲突,你可以直观地...
在Eclipse中集成SVN插件,可以让开发者直接在IDE内部进行版本控制操作,提高开发效率。 集成SVN插件到Eclipse主要有以下几个步骤: 1. **安装Subversive或Subclipse插件**:Eclipse支持两种主流的SVN插件,...
3. 提交与更新:通过右键菜单或“团队”(Team)菜单,可以对文件进行提交(Commit)、更新(Update)、合并(Merge)等操作。 4. 冲突解决:当多个人同时修改同一份文件时,Eclipse会提示冲突,并提供工具帮助你...
TortoiseSVN和Eclipse-SVN插件是软件版本控制系统Subversion(简称SVN)在Windows环境下的两个重要组成部分。TortoiseSVN是一款图形化的界面工具,它提供了直观的右键菜单集成,使得用户在Windows资源管理器中就能...
Eclipse SVN插件是开发人员在使用Eclipse集成开发环境时,用于版本控制的重要工具,主要功能是与Subversion(SVN)服务器进行交互,实现代码的版本管理。本篇文章将详细阐述Eclipse SVN插件的相关知识点,包括其安装...
Eclipse SVN插件是开发人员在使用Eclipse集成开发环境时进行版本控制的重要工具,它使得开发者能够在Eclipse内直接进行Subversion(SVN)的相关操作,如代码的提交、更新、比较、解决冲突等。Subversion是一款开源的...
"eclipse-svn-1.8.4"这个压缩包文件很可能包含了Eclipse IDE与Subversion 1.8.4版本的集成插件,使得开发者可以直接在Eclipse环境中进行SVN操作。 首先,我们需要了解Subversion(SVN)的基本概念。SVN是分布式版本...
右键点击文件或项目,选择“Team”菜单下的相应操作,如“Commit”(提交)、“Update”(更新)、“Merge”(合并)等。这些操作可以帮助你追踪和管理项目的变化。 对于冲突解决,当两个或更多用户修改了同一份...
二、 SVN分支简介 1、SVN仓库目录结构Repository 2、 结合eclipse创建分支 3、 结合eclipse创建标记tags 三、 合并主干和分支 1、 主干合并分支 2、 分支合并主干 3、 合并发生冲突 情况1:标记冲突,稍后处理。 ...