SVN合并(merge)的使用
原文 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)的使用相关推荐
- svn的merge,解决冲突
冲突的产生 svn目前已经很智能了,在多人开发中,即使两人更改了同一个文件的不同位置(比如A修改了第一行,B修改了第二行),svn还是会自动把你们的修改进行合并的. 但是如果俩人修改的是同一行,那么就 ...
- svn合并不同树_如何利用SVN合并代码
展开全部 利用SVN合并 Subversion的版本库是一种文件服务器,但不是"一般"的文件服务器.e69da5e6ba9062616964757a686964616f313333 ...
- python DataFrame数据合并 merge()、concat()方法
文章目录 merge() 1.常规合并 ①方法1 ②方法2 重要参数 合并方式 left right outer inner 准备数据' inner(默认) outer left right 2.多对 ...
- Gir合并merge两个完全不同Git项目时出现fatal: refusing to merge unrelated histories的解决办法
1.问题背景 我们有时会有这样一个疑问:Git会知道两个项目是毫不相干的嘛?如果我们合并merge两个毫不相干的项目会发生什么? 其实Git是可以判断两个项目是否是毫不相干的,判断的依据是两个项目的第 ...
- ubuntu上面svn用merge合并到之前的版本
第一步:切换到svn项目的目录 第二步:更新到最新用 svn update 第三步:查看我们当前svn的版本号 svn info Revision:2234 第四步:查看我们每次记录的日志信息得到版 ...
- svn小乌龟代码的合并merge
小乌龟 Tortoise svn操作 分支(branches).主干(master) ①.merge two different tree 1.将主干(master)上 的修改 合并到 分支(bran ...
- 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 ...
- svn 合并分支 等
[转载]svn分支(branch)创建.合并(到trunk).冲突解决. Leave a reply 转载自:http://zccst.iteye.com/blog/1430823 一.创建分支 1, ...
- svn的merge使用例子
先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...
最新文章
- 高并发场景下数据库的常见问题及解决方案
- [置顶] 安全-用户身份验证
- TCP/IP 四次断开
- Java中的基本数据类型以及Java的基本结构
- hdu 5265(二分+枚举)
- 如何解决for in 循环无法遍历symbol key的问题
- bootstraptable控制分页_bootstrap-table后端分页功能完整实例
- SQL注入——SQL注入漏洞利用(零)(值得收藏)
- linux内核启动流程x86,linux内核-x86_32位内核启动流程
- leetcode41. First Missing Positive
- SeasLog 之企业级日志行为规范发布
- PHP货币转中文大写函数
- 88个建筑施工问题合集,堪称教科书
- 使用谷歌Chrome浏览器将网页保存为html格式
- (数字ic验证)从零开始的apb_watchdog验证模块搭建(二、apb直接发送激励与寄存器模型加入)
- 流量劫持是什么?常用方法有哪些?
- 大三老学姨想说。。。
- 博弈论(阶梯博弈)POJ 1704
- ACG图片站\python爬虫\LAMP环境
- 教师计算机知识比赛方案,教师计算机基础知识考核方案.doc
热门文章
- 枚举实现单例singleton
- Nginx实现高可用的工作原理
- Qt 检测第三方软件是否运行、杀死第三方进程
- dfmea文件_DFMEA和PFMEA的“六步法”其实很不一样
- java中的关键字:this与super 大详解
- python123第三章作业答案_swift playground类似的游戏
- C/Cpp / 虚函数是否可用 static 修饰
- 空间句法软件_【特训营2:空间句法高阶班】GIS中的空间句法运用 丨城市数据派...
- DDoS攻击愈演愈烈,反射攻击举足轻重
- Rethinking算法实习生