svn建立分支和svn代码合并的操作方法

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

下面是在eclipse下使用subeclipse插件详细使用过程:

首先建立一个工程,名字叫Facebook

1.建立分支,为新的分支指定访问URL:Facebook3[注释不要忘了] 

ui设计师的前景

ui设计

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
1540,Facebook3,/Facebook3,branch" E:/myeclipse/workspace/Facebook
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook3 E:/myeclipse/workspace/Facebook -rHEAD
At revision 1541.
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 1542.
switch svn://192.168.1.192/placii/staggingarea/xiangqi/Facebook E:/myeclipse/workspace/Facebook -rHEAD
DE:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Updated to revision 1542.
===== File Statistics: =====
Deleted: 1
merge svn://192.168.1.192/placii/staggingarea/xiangqi/[email protected] svn://192.168.1.192/placii/staggingarea/xiangqi/[email protected] E:/myeclipse/workspace/Facebook
AE:/myeclipse/workspace/Facebook/WebRoot/FB3.html
Merge complete.
===== File Statistics: =====
Added: 1

===========================关于合并==========================

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

假设我原来的项目是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
1549,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 1550.

3.目标路径:这里使用起始路径。

4.目标版本号:使用最新版即 HEAD.

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

时间: 2024-07-31 17:38:47

svn建立分支和svn代码合并的操作方法的相关文章

SVN建立分支和合并代码

1.SVN建立分支正确SVN服务器上会有两个目录:trunk和branches.trunk目录下面代码就是所谓的主版本,而branches文件夹主要是用来放置分支版本.分支版本是依赖于主版本的,因此建立分支版本时候,必须要在trunk文件夹操作才可以的.下面是推荐的操作步骤:(1)从SVN上checkout Trunk版本下来.如果在本地机器上已有了trunk版本,需要更新一下到最新代码. (2)在本地抓下来的trunk版本的文件上,点击右键,弹出菜单,选中如下菜单项. 弹出如下对话框,按在下面

SVN建立分支、代码合并以及常用操作

在项目开发的过程中,现在遇到这样一个问题: 现在是9月份,在同一个项目中我要开发A.B两个模块,A模块是11月份上线,B模块是12月份上线,但是SVN上的trunk(主干)上的代码必须是上线的. 假设我可以在9月份完成这两个模块,但是我不能在trunk上开发完这两个模块.因为如果我在trunk上开发完成了这两个模块,等11月份A模块上线时,我怎么保证 我提交的代码只是A模块的呢?并且在我开发这个项目的同时,其他同事也在开发这个项目,这样,整个项目就会乱掉,没办法管理.当然,或许你可以将现在的项目

idea完成分支和主干的合并

我们在开发一个项目的时候,我们可能会创建一个分支和一个主干.对于分支而言,我们一般在开发的时候可能会使用,但是在项目上线的时候,我们抽取的项目的地址可能是主干的svn地址,这时我们需要将分支上的svn代码合并到主干上面,此时我们就需要拿分支和主干进行比较了. 问题来了,我们如何使用idea,将分支上面的代码和主干进行比较,并将修改后的代码合并到主干上面. 具体的请看下面的讲解~ 首先点击下面 红框中的内容: . 接下来在界面方框中分别输入下面两个内容,对应比较的主干和分支并在Try merge上

Eclipse SVN 主干-分支 代码合并

主干上建立分支:右键→team→branch/tag  填写你要建立的分支的路径名.然后一路next. 切换到自己的分支进行代码编写:右键→team→other Branch 此时主线上代码有更新,需要合并主线的代码:右键→team→merge选择Reintegrate a branch Merge From 选择主干的路径一路默认选择,finish后,SVN会自动将代码合并,并保留由冲突的代码. 合并主干代码完事后,需要将本地代码和分支代码进行同期化操作.右键→team→同期化,然后将最新的代

SVN 将主干的代码合并到分支上

来源:http://blog.csdn.net/u012701023/article/details/50978154 问题:开发有了项目主干,再次基础上起了一个分支,开发新的功能:因为业务需要,在上个分支还在测试阶段,还没有和主干合并: 但是新的业务又急着开发,又在上个分支的基础上又打了一个分支 这样我们会遇到一个问题 当合并代码的时候会出现很多的冲突,我们需要在主干上修改之前版本的bug  在当前版本上开发新的功能 这样合并代码时候发生冲突是必然的  团队中开发人员比较多 功能开发完毕合并代

SVN合并代码之二:将分支2个版本之间的代码合并到主干

背景:几个月前由于开发需要,从主干新建了分支,现在开发完成且在单独的测试环境测试通过且分支代码已合并到主干,同时另外一同事也以我们的分支修改了代码,在我们将分支代码合并到主干后,他的代码才提交分支,此时他想将他提交到分支的代码合并到主干. 操作步骤如下: 1.首先,获取他提交分支前分支的版本号(设为版本号A)和提交分支后分支的版本号(设为版本号B).获取分支版本号的方式是选中项目-右键-Team-显示资源历史记录. 2.合并代码: 选中需要合并代码的文件夹,也可以选中整个项目,右键-Team-合

svn branch and merge(svn切换分支和合并)详解

下文的实践主要是参考了TortoiseSVN的帮助文档和Subversion的在线文档,Subversion的在线文档:http://svnbook.red-bean.com/en/1.5/svn-book.html 先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,待开发结束后合并回trunk中,在bran

[No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图

行结束符和空白选项 在项目的生命周期中,有时可能会将行结束符由 CRLF 改为 LF,或者修改一段代码的缩进.不幸的是这样将会使大量的代码行被标记为已修改,尽管代码本身并没有被修改.这里列出的选项将会在比较差异 和应用补丁时帮助你应对这些修改.你将会在合并和追溯对话框中看到这些设置,它们同样也出现在TortoiseMerge 的设置中. 忽略行结束符 排除仅行结束符的差异. 比较空白 将所有缩进和行内空白差异视为增加/删除的行. 忽略空白修改 排除那些完全是针对空白数量或类型的修改,例如,修改缩

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

分支的合并类型 合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里.如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定要和当前的工作副本的URL是相同的. 一.合并一个范围的版本 此类型应用最为广泛,主要是把分支中的修改合并到主干上来.在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本.合并的源URL填写的是要合并的