`
energykey
  • 浏览: 598203 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多
首先说下为什么我们需要用到分支-合并。比如项目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
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
    D  E:/myeclipse/workspace/Facebook/WebRoot/FB3.html
    Updated to revision 1542.
    ===== File Statistics: =====
    Deleted: 1
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: 1


希望本文能有所帮助。
其他参考资料:
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
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.

点击合并,如果有人在主干线版本上做了更改,而你再分支上也对这个文件作了更改,将会产生冲突。然后手动把冲突的代码合并一下,右键-标记为解决,这就达到我们的目的了。
  • 大小: 31.2 KB
  • 大小: 66 KB
  • 大小: 39.3 KB
  • 大小: 26.6 KB
  • 大小: 48.1 KB
  • 大小: 17.1 KB
  • 大小: 51.6 KB
  • 大小: 26.9 KB
  • 大小: 15.5 KB
  • 大小: 26.8 KB
  • 大小: 65.6 KB
  • 大小: 16.2 KB
  • 大小: 65.3 KB
10
0
分享到:
评论
9 楼 xiboliyalang 2016-09-21  
                        
8 楼 77321660 2015-11-30  
谢谢,很详细的教程,受用。
7 楼 rovegaby 2013-12-17  
博主 你好  我用你的方法 建立分支 跟合并 分支 都报一个错误:

http://hi.baidu.com/i_ccboy/item/c90aae8495ddc3ded1f8cda7

这里的第二个问题 , 有没有办法 解决。还有 我这个svn 插件跟你的一样,是不是插件的问题。
6 楼 fanjf 2011-12-19  
不错,受用
5 楼 energykey 2011-07-11  
 
4 楼 beautyOfProgram 2011-07-11  
beautyOfProgram 写道

我实际操作结果是:操作的起始路径 和目标路径与你上面文中写的相反

我测试结果是: 起始路径应该为改动的源,如文中在分支修改,那么此处应该为分支路径
目标路径为 要合并的trunk

我的svn命令:把trunk 合并到分支

merge --depth=infinity http://192.168.1.18/repos/hxia/trunk/VMS@HEAD http://192.168.1.18/repos/hxia/branches/VMS_SQLSERVER@HEAD E:/myeclipseWorkspace/VMS

 

仔细检查一遍,发现时我错了,文中的教程是正确的,请原谅。
3 楼 beautyOfProgram 2011-07-11  

我实际操作结果是:操作的起始路径 和目标路径与你上面文中写的相反

我测试结果是: 起始路径应该为改动的源,如文中在分支修改,那么此处应该为分支路径
目标路径为 要合并的trunk

我的svn命令:把trunk 合并到分支

merge --depth=infinity http://192.168.1.18/repos/hxia/trunk/VMS@HEAD http://192.168.1.18/repos/hxia/branches/VMS_SQLSERVER@HEAD E:/myeclipseWorkspace/VMS

 
2 楼 beautyOfProgram 2011-07-05  
  很好,谢谢!!
1 楼 yayg 2010-04-08  
谢谢,授用

相关推荐

    Eclipse下SVN使用操作手册

    使用`svn copy`命令创建分支,再通过`svn merge`进行合并。 - **标签创建**:对于重要的版本或里程碑,可以使用标签(tag)进行标记,便于回溯历史版本。 - **冲突处理**:在多人协作时,可能会遇到文件冲突。SVN...

    版本控制系统SVN tortoise SVN subeclipse的介绍 ppt

    此外,Subversion推荐使用特定的目录结构,如trunk(主线开发),branches(分支)和tags(标记,代表特定版本)。 **TortoiseSVN** 是Subversion的一个图形化客户端,提供直观的Windows资源管理器集成,使得用户...

    subeclipse插件的使用

    SubEclipse会在冲突的文件中标记出冲突部分,你必须手动编辑这些区域以解决冲突,然后才能提交更改。 SubEclipse还提供了日志查看器,你可以通过"Team" -> "Show Log"来查看项目的历史版本,包括每个版本的作者、...

    subeclipse eclipse下的SVN插件,不用在线安装

    SubEclipse是Eclipse集成开发环境(IDE)中的一款非常重要的插件,它使得开发者能够直接在Eclipse中使用版本控制系统Subversion(SVN)。这款插件极大地简化了与Subversion仓库交互的过程,包括版本控制操作如提交、...

    Eclipse svn1.8.22插件

    Eclipse SVN 1.8.22 插件是针对Eclipse集成开发环境的一个扩展,主要用于版本控制系统Subversion(SVN)的交互和支持。Subversion是一个开源的版本控制系统,它帮助用户管理文件和目录的不同版本,使得多人协作开发...

Global site tag (gtag.js) - Google Analytics