`

SVN合并(merge)的使用

    博客分类:
  • svn
 
阅读更多
原文地址:http://blog.csdn.net/kennylee26/article/details/4494704



    分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支。



        此操作十分重要,在团队开发中,如果你是SVN 的维护者此环节可以说是必不可少,因为团队开发中如果使用了分支,那样合并分支到主干、或者分支合并分支的操作是必须的。



        如果不使用分支,直接在主干上修改的话,主干版本可能会变得十分混乱。维护难度大大加大。



     下面以使用TortoiseSVN为例,任何SVN的客户端工具其实都大同小异。



一、分支的合并



合并




点击菜单上的合并按钮,出现如图窗口,一般的使用第三个选项即可。如图所视。

点击下一步



选择合并URL和版本




注意填写起始和结束的URL 及版本,尤其重要。这一步将影响你合并后所得的版本。



简单的说,“结束的URL 和版本”是此次操作的最终标准。而“起始URL 和版本”一般情况下必须是该分支创建的起始版本。



比方说,这次分支是从主干100 上创建的,而分支的起始版本是101 。最终分支完成后的版本是105 。

简单情况下,主干上的版本没有被更新,依然是100 。如果想把分支功能合并到主干上的话,我们可以在主干100 的工作副本中点击合并,然后“起始URL 和版本”填写主干的URL ,版本100( 或者HEAD ,因为最新版本也是100) ,然后“结束的URL 和版本”填写分支的URL 和版本105( 也可以是HEAD) 即可。



操作完成后,此次合并效果会在工作副本上呈现,如果有问题请使用还原,撤销此次修改操作。



注:其他SVN 的插件大同小异。





二、多分支合并



参考单分支的分支操作,而多分支的情况简单来说有两种:



分支中的起始版本一致


比方说现在有两个分支,分支A 和分支B 。他们分别从主干T 创建分支。

主干T 版本100 ,分支A 的版本101 ,分支B 的版本号102 。



当分支A 和分支B 都各自完成开发,并且提交到SVN 上后。A 的版本号为110 ,而B 的版本号为115 。



分支起始版本一致



此时必须两步操作,并且操作在主干T 的工作副本内执行:



1)     主干T 合并分支A
起始URL 和版本

主干T 的URL 、版本100



结束的URL 和版本

分支A 的URL 、版本110



2)     合并分支A 后再继续合并分支B
起始URL 和版本

主干T 的URL 、版本100



结束的URL 和版本

分支B 的URL 、版本115



注意:完成第一步的时候不必提交。



分支中的起始版本不一致


比方说现在有两个分支,分支A 和分支B 。分支A 是从主干T 版本100 上创建,分支A 版本101 。创建分支A 后,主干上又做了其他修改,并且更新成版本102 。

然后主干T 版本102 的基础上创建分支B ,分支B 版本号为103 。



两个分支各自开发,最终分支A 版本号为110 ,而分支B 的版本号为120 。



分支起始版本不一致



此时合并操作应该为三步,多的一步其实就是把起始版本统一:



1)     分支A 更新主干100-101 的更新,在分支A 的工作副本内执行。
起始URL 和版本

主干T 的URL 、版本100



结束的URL 和版本

主干T 的URL 、版本101



无误后提交修改。分支A 此时最终版本修改为121 。



2)     主干T 合并分支A
起始URL 和版本

主干T 的URL 、版本102



结束的URL 和版本

分支A 的URL 、版本121



3)     主干T 合并分支B
起始URL 和版本

主干T 的URL 、版本102



结束的URL 和版本

分支B 的URL 、版本120



看起来比较繁琐,其实最终目的还是把起始的版本统一,然后再把主干和分支上的差异修改添加到主干之上。
分享到:
评论

相关推荐

    svn 合并、冲突及常用功能详解

    svn的合并和冲突的解决一直以来困扰着很多人,该文档以图解的形式举例介绍svn的merge与冲突。

    SVN解决冲突(合并别人的修改)

    SVN解决冲突(合并别人的修改) 详细讲解了svn冲突合并的方法 非常适合初学者学习

    SVN分支与合并【超详细的图文教程】

    SVN分支的意义: 简单说,分支就是用于区分开发版本与当前发布版本的。  1、 主干负责新功能的开发  2.、分支负责修正当前发布版本的bug(对于可以放入下个发布版本的改进性bug可以直接在主干上开发)  3.、...

    svn版本之间的合并问题

    svn版本之间的合并问题

    SVN使用手册中文版快速入门

    svn merge svn mkdir svn move svn propdel svn propedit svn propget svn proplist svn propset svn resolved svn revert svn status svn switch svn update svnadmin svnadmin Switches svnadmin Subcommands ...

    SVN使用手册中文版.chm

    svn merge svn mkdir svn move svn propdel svn propedit svn propget svn proplist svn propset svn resolved svn revert svn status svn switch svn update svnadmin svnadmin Switches svnadmin Subcommands ...

    mac 下的代码对比合并工具 svn

    Merge是一款可视化文件比较/合并与文件夹同步软件,支持英语、德语、法语、国际西班牙语和中文(简体和繁体)。

    SVN分支/合并原理及最佳实践

    使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的...

    Svn版本管理教程

    网上发觉的一个比较全的svn使用教程,里面有svn比较详细的使用流程及目录组织结构(trunk,branches,tags)。最重要的是提供了团队利用svn进行开发的方法,以及版本合并(Merge)的方法

    SVN客户端用户使用手册

    当需要把soc_1_branc分支文件合并到soc_1主干文件时,右键单击soc_1,选择Merge,会弹出一个窗口,如图9。 图9 在From输入框中填入主干的URL,在To输入框中填入分支的URL。在From和To中,都有两个选项HEAD ...

    AnkhSvn操作手册

    9 2.4.4 什么是冲突合并视图 10 3 开始使用 AnkhSvn10 3.1 安装 AnkhSVN 10 3.2 在 VisualStudio 中启用 AnkhSvn 10 3.3 将项目连接到 AnkhSVN 11 3.4 增加解决方案到版本库 12 3.5 浏览版本库13 3.6 增加工作拷贝到...

    SVN操作手册中文版网页格式

    3.6.6. 使用 svn+ssh 认证 3.6.7. svnserve 基于路径的授权 3.7. 基于 Apache 的服务器 3.7.1. 简介 3.7.2. 安装 Apache 3.7.3. 安装 Subversion 3.7.4. 配置 3.7.5. 多版本库 3.7.6. 路径为基础的授权 ...

    在Eclipse中使用SVN与CVS代码管理工具管理项目

    VSS 提供 share (共享 ) 、 branch( 分支)和合并( merge) 的功能,对于团队的开发进行支持。 VSS 不提供对流程的管理功能,如对变更的流程进行控制。 VSS 不能提供对异地团队开发的支持。此外 VSS 只能在 ...

    源代码比较工具 Araxis Merge 2001 Pro

    非常牛的源代码比较工具,支持目录,文件。 两列、三列 方式比较,并提供很好的合并和...无论是单独使用,还是配合 版本管理工具比如SVN,都非常方便。 下载和解压缩都没有问题。 下载后评论还可以把用掉的分找回来。

    subversion-merge-conflict-resolver:Subversion树冲突解决程序

    因此,通过在合并修订的主干工作副本中搜索该文件并更新已移动文件的分支副本,可以轻松实现该方法。 并将冲突标记为已解决。 TreeConflictResolverUsingSvnKit 它尚未完成,正在开发中! 它执行与...

    TortoiseSVN

    TortoiseSVN是一个SVN的客户端,使用方法: 1.Checkout Repository 首先要Checkout服务器端的Repository, 所谓的Checkout就是指获得服务器端指定的Repository存储的所有文件。 这个Checkout和Visual Source ...

    TotoiseSVN的基本使用方法

    注意:更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。 五、重命名文件或文件夹,并将修改提交到SVN服务器 ...

    GIT安装文件取代SVN和CVS

    Git 最为出色的是它的合并 跟踪(merge tracing)能力。 实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源 社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的...

    TortoiseMerge-1.13.1-zh_CN.pdf

    TortoiseMerge-1.13.1-zh_CN.pdf文档,SVN版本合并中文帮助手册 1.13.1版本

    TortoiseSVN+Merge_v1.12.2 2019中文官方文档

    通过它你可以查看文本文件之间的差异,并合并这些差 异;甚至审查和采用这些标准差异文件——通常称之为 补丁 。 官方安装包地址: ...

Global site tag (gtag.js) - Google Analytics