首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

svn旁支和合并实战(图解)

2012-11-01 
svn分支和合并实战(图解)被svn分支和合并折腾了两天了。适才终于搞定了分支和合并的问题,打包部署成功了。总

svn分支和合并实战(图解)

被svn分支和合并折腾了两天了。适才终于搞定了分支和合并的问题,打包部署成功了。总结下,以防遗忘。项目前段时间因为要加入OSGi的blueprint方法发布和获取服务,从svn主干上做了分支。如今分支的开发完成了,要求合并到主干中。svn的目录结构如下:

主干trunk:

https://192.168.0.11:8443/svn/code/product/trunk/项目名称/code/OSGiServer/plugins/com.tzf.svn.test

tag:

https://192.168.0.11:8443/svn/code/product/tag

分支branches:

https://192.168.0.11:8443/svn/code/product/branches/项目名称/code/OSGiServer/plugins/com.tzf.svn.test

?

先从http://subversion.apache.org/packages.html#windows下载win2svn文件:Setup-Subversion-1.6.13。安装,在cmd下,svn 命令就可以了。下载这个的作用有两个:查看分支分出时的版本和解决合并冲突。

?

我这里是从分支合并到主干,

?

?

现在在分支里做点修改,比如我加个类叫Bean2.java,并且提交。如图:

svn旁支和合并实战(图解)

?

好啦,现在将工程切换到主干里,因为从分支合并到主干,被操作对象是主干工程。

要合并得知道分支分出去时的版本号,cmd打开命令行,使用

?

找到最下版本信息,这里就是r8623,记住这个版本号,以后合并的from就是从这个版本号开始的。to就是指你想要合并的版本号,一般都是最新版本,当然也可以是指定版本。

切换到主干,选中工程,右键team -> 合并:

svn旁支和合并实战(图解)

?

next,出现

svn旁支和合并实战(图解)

?

from就是分支的路径,下面选择的就是刚刚记下的分支分出的版本号,to这里就是合并到那个版本,我这里选择的最新版本。点finish,如果文件有冲突就弹出询问框,选择现在暂时不处理就行。


svn旁支和合并实战(图解)
?我这里没有出现文件冲突,点ok就基本大功告成。这时需要在主干里体检带修改符号的文件,完成提交就搞定了合并。

如果文件冲突了怎么办呢,在命令行下进入冲突文件的目录,用svn命令行客户端键入:注意:From不是本Tag的某个版本,而是之前主干打出分支时的版本,最终Merge到prjTag1的work copy,而prjTag1是找不到当初打分支时的版本的。

?

?

被svn合并折腾了两天,也许还有OSGi复杂的原因,问题算是解决了,但是也是非常的繁琐。希望能看到网友朋友更好的方法分享。

1 楼 月光1125 2011-09-15   谢谢了,最近我也是整分支,打包时老是有问题 2 楼 liuzhiyi7288 2012-01-04   哥们儿,你说的“branch merge to trunk”,解决方案是错误的,如果从分支合并到主干,应该选择“Reintegrate a branch ”,真不清楚你那种方法怎么Merge的?你验证过吗;而且merge最关键的是resolved the Conflict,解决冲突不是执行个命令就可以搞定的,在出现冲突后,myeclipse会提示你,如果处理,应该选择最后一项,通过图形界面处理冲突,类似于我们平时提交代码解决冲突的界面,merge时冲突文件,系统会逐个提示你解决,处理完每个冲突后,关闭文件,系统会提示,我们选择“已经解决冲突,将文件合并到一起”,这样处理会继续往下。 3 楼 liuzhiyi7288 2012-01-04   不过还是谢谢你,文章比较详细! 4 楼 flysnowxf 2012-06-25   liuzhiyi7288 写道哥们儿,你说的“branch merge to trunk”,解决方案是错误的,如果从分支合并到主干,应该选择“Reintegrate a branch ”,真不清楚你那种方法怎么Merge的?你验证过吗;
他的方案没问题,不管什么方法,都是选择一个from,选择一个to。分支合并到主干,from既可以从主干选择,也可以从branches选择。

热点排行