本节向大家简单描述一下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等),然后单击合并即可。由于我的需求中主线和分支修改的是不同的文件,所以不会存在冲突,合并完后直接提交即可。
 
四、合并的工作是把主线或者分支上合并范围内的所有改动列出,并对比当前副本的内容,由合并者手工修改冲突。如果当前工作副本是主线的,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主线上的改动。

实例讲解SVN分支和合并问题(转)的更多相关文章

  1. 详细说明svn分支与合并,以及实例

    详细说明svn分支与合并,以及实例 一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例 ...

  2. SVN分支与合并【超详细的图文教程】(转载)

    SVN分支与合并 一. 分支与合并的概念 二. SVN分支的意义 三. 如何创建分支与合并分支 一.分支与合并的概念: 分支:版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上.这 ...

  3. 详细说明svn分支与合并---命令行

    一,svn分支与合并有什么用? 作程序的,对svn在熟悉不过了,但对svn分支熟悉的,我想并不多.因为一般情况下,是用不着svn分支的,其实也没有那个必要.下面我例举几个需要用到svn分支的情况: 1 ...

  4. SVN 分支及合并的介绍和实践---命令行

    写在前面 一些相关的概念和原理 进行分支开发的最佳实践 合并的分类 在 Eclipse 中进行合并操作 相关资源 写在前面 本文是由演讲整理而来的,介绍了 SVN 分支与合并的概念.流程和一些实际操作 ...

  5. SVN 分支代码合并到主线

    SVN 分支代码合并到主线 步骤一安装TortoiseSVN 客户端,在本地 checkout主线代码 步骤二:创建branches分支 步骤三.branches修改提交代码 步骤四:分支代码合并到主 ...

  6. eclipse svn分支与合并操作

    以前做项目的时候没有用过svn的分支合并操作,今天用到了,刚开始还真不会啊.最后查了下就是这么的方便.专门记录下来. 原文来自:http://blog.csdn.net/lisq037/article ...

  7. (转)myeclipse插件—SVN分支与合并详解【图】

    svn作为版本控制软件被广泛用于众多公司的开发团队中,最多的场景就是一个项目上传svn后,一个组内的小伙伴在上边提交和更新代码以及解决冲突,其实这只是发挥了svn的很小的一部分功能. 先稍微介绍一下s ...

  8. SVN分支的合并和同步

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

  9. myeclipse使用SVN分支与合并详解

    此博文主要内容来源地址:https://blog.csdn.net/liuyifeng1920/article/details/53118183,感谢原创博主: 先介绍一下svn的两种开发和发布的规范 ...

随机推荐

  1. oracle列转行 WM_CONCAT LISTAGG

    开发给个SQL说给某个条件时报ORA-22922 代码段: SELECT 袋号, SUM(实际重量) AS 实际重量, SUM(材积重量) AS 材积重量, COUNT(运单号) AS 件数, TO_ ...

  2. JDBC 学习笔记(七)—— CallableStatement

    在大型关系型数据库中,有一组为了完成特定功能的 SQL 语句集被称为存储过程(Stored Procedure),它是数据库中的对象. JDBC 使用 CallableStatement 对象,完成对 ...

  3. HDU——2087剪花布条

    剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. 广东工业大学2016校赛决赛重现——E积木积水(方法据说很多)

    Problem E: 积木积水 Description 现有一堆边长为1的已经放置好的积木,小明(对的,你没看错,的确是陪伴我们成长的那个小明)想知道当下雨天来时会有多少积水.小明又是如此地喜欢二次元 ...

  5. 如何在 Windows 上 使用 ONLYOFFICE 协作编辑文档

    ONLYOFFICE Document Server提供文档协作的服务功能,支持Word,Excel和PowerPoint的协作.但是这里告诉我们,需要进行文档管理和存储的二次开发. Please n ...

  6. UVA11367 Full Tank? 【分层图最短路】

    题目 After going through the receipts from your car trip through Europe this summer, you realised that ...

  7. [转] Makefile 基础 (2) —— Makefile 总述

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...

  8. float浮动的学习

    很早以前就接触过CSS,然后就在也没有深入了解过.今天突然遇到有人问了关系浮动的问题,碰巧没事就将内容整理下,与大家交流学习. 首先大家也应该都知道,div是块级元素,在页面中独占一行,自上而下排列, ...

  9. js 打印二维码

    先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取), qrcode.js 是实现二维码 ...

  10. hdu 2888 二维RMQ

    Check Corners Time Limit: 2000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...