原文 http://blog.csdn.net/kennylee26/archive/2009/08/28/4494704.aspx

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

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

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

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

一、分支的合并

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

点击下一步

注意填写起始和结束的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

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

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kennylee26/archive/2009/08/28/4494704.aspx

转载于:https://www.cnblogs.com/meetrice/archive/2009/09/14/1566398.html

SVN合并(merge)的使用相关推荐

  1. svn的merge,解决冲突

    冲突的产生 svn目前已经很智能了,在多人开发中,即使两人更改了同一个文件的不同位置(比如A修改了第一行,B修改了第二行),svn还是会自动把你们的修改进行合并的. 但是如果俩人修改的是同一行,那么就 ...

  2. svn合并不同树_如何利用SVN合并代码

    展开全部 利用SVN合并 Subversion的版本库是一种文件服务器,但不是"一般"的文件服务器.e69da5e6ba9062616964757a686964616f313333 ...

  3. python DataFrame数据合并 merge()、concat()方法

    文章目录 merge() 1.常规合并 ①方法1 ②方法2 重要参数 合并方式 left right outer inner 准备数据' inner(默认) outer left right 2.多对 ...

  4. Gir合并merge两个完全不同Git项目时出现fatal: refusing to merge unrelated histories的解决办法

    1.问题背景 我们有时会有这样一个疑问:Git会知道两个项目是毫不相干的嘛?如果我们合并merge两个毫不相干的项目会发生什么? 其实Git是可以判断两个项目是否是毫不相干的,判断的依据是两个项目的第 ...

  5. ubuntu上面svn用merge合并到之前的版本

    第一步:切换到svn项目的目录 第二步:更新到最新用 svn update  第三步:查看我们当前svn的版本号 svn info Revision:2234 第四步:查看我们每次记录的日志信息得到版 ...

  6. svn小乌龟代码的合并merge

    小乌龟 Tortoise svn操作 分支(branches).主干(master) ①.merge two different tree 1.将主干(master)上 的修改 合并到 分支(bran ...

  7. svn 合并问题 MERGE of '/svn/web': 200 OK (http://xx.xx.xx.xx)

    今天调整svn 的时候出现了一个问题,顺便记录了. Commit G:\Users\Administrator\Desktop\web\789.txt G:\Users\Administrator\D ...

  8. svn 合并分支 等

    [转载]svn分支(branch)创建.合并(到trunk).冲突解决. Leave a reply 转载自:http://zccst.iteye.com/blog/1430823 一.创建分支 1, ...

  9. svn的merge使用例子

    先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...

最新文章

  1. 高并发场景下数据库的常见问题及解决方案
  2. [置顶]       安全-用户身份验证
  3. TCP/IP 四次断开
  4. Java中的基本数据类型以及Java的基本结构
  5. hdu 5265(二分+枚举)
  6. 如何解决for in 循环无法遍历symbol key的问题
  7. bootstraptable控制分页_bootstrap-table后端分页功能完整实例
  8. SQL注入——SQL注入漏洞利用(零)(值得收藏)
  9. linux内核启动流程x86,linux内核-x86_32位内核启动流程
  10. leetcode41. First Missing Positive
  11. SeasLog 之企业级日志行为规范发布
  12. PHP货币转中文大写函数
  13. 88个建筑施工问题合集,堪称教科书
  14. 使用谷歌Chrome浏览器将网页保存为html格式
  15. (数字ic验证)从零开始的apb_watchdog验证模块搭建(二、apb直接发送激励与寄存器模型加入)
  16. 流量劫持是什么?常用方法有哪些?
  17. 大三老学姨想说。。。
  18. 博弈论(阶梯博弈)POJ 1704
  19. ACG图片站\python爬虫\LAMP环境
  20. 教师计算机知识比赛方案,教师计算机基础知识考核方案.doc

热门文章

  1. 枚举实现单例singleton
  2. Nginx实现高可用的工作原理
  3. Qt 检测第三方软件是否运行、杀死第三方进程
  4. dfmea文件_DFMEA和PFMEA的“六步法”其实很不一样
  5. java中的关键字:this与super 大详解
  6. python123第三章作业答案_swift playground类似的游戏
  7. C/Cpp / 虚函数是否可用 static 修饰
  8. 空间句法软件_【特训营2:空间句法高阶班】GIS中的空间句法运用 丨城市数据派...
  9. DDoS攻击愈演愈烈,反射攻击举足轻重
  10. Rethinking算法实习生