[svn] linux命令——svn分支创建、合并
一、创建分支 
1,创建一个分支 
svn copy svn://xx.com/repo/trunk svn://xx.com/repo/branches/TRY-something -m 'make branches TRY-something'
2,把工作目录转到分支 
svn switch svn://xx.com/repo/branches/TRY-something
当然,也可以再转到主干svn switch svn://xx.com/repo/trunk
二、合并一个分支到主干 
1, 查找到分支版本 
方法一:cd branch 
svn log --stop-on-copy 
最后一个r11340就是创建分支时的reversion
方法二:cd trunk 
命令:svn -q --stop-on-copy 分支URL,这条命令会查询出自创建分支以后分支上的所有修改,最下面的那个版本号就是我们要找的版本号. 
示例:svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24
2, 合并到主干 
命令:svn -r 分支版本号:HEAD 分支的URL 
解释:HEAD为当前主干上的最新版本 
示例: 
cd trunk 
svn merge -r 12:HEAD svn://192.168.1.177/tags/beta_2009_12_24
解决冲突: 
使用svn st | grep ^C 查找合并时的冲突文件,手工解决冲突 
使用svn resolved filename 告知svn冲突已解决 
使用svn commit -m "" 提示合并后的版本
svn: Aborting commit: '/path/resources/noc' remains in conflict 
$ svn revert resources/noc 
Reverted 'resources/noc'
三、两个分支合并
两个分支合并可以拆分为一下两步:
第一步:
197从旧主干引出, 
186打完tag,表示是新主干
合并最新代码的意思是:将新主干与旧主干比对,并添加到197中。这样197既有自己的新增的代码,也同时有最新线上的代码。 
cd 197_Branch 
svn merge https://xxx.com/tags/project/project_Old_BL https://xxx.com/tags/project/project_New_BL 
svn ci -m 'merge 186 trunk'
第二步:
但是后来,其他人又向186提了代码,所以还需要将186分支(即打了tag后的186,打了tag前的186已是主干)合并至197中。 
合并办法:找出186分支,比对与新主干之间的差别,并添加到197中。这样197就有最新的全部代码了。 
cd 197_Branch 
svn merge https://xxx.com/tags/project/project_New_BL https:/xxx.com/project/branches/project/186_Branch 
svn ci -m 'merge 186 branch'
四、发布
给当前主干打个标签,并且这个标签不再改动了,但是实际上标签和分支是一个意思,你可以在标签上继续做改动,但这不推荐。 
svn copy svn://xx.com/repo/trunk svn://xx.com/repo/tags/RB-1.0
[svn] linux命令——svn分支创建、合并的更多相关文章
- zt:我使用过的Linux命令之ar - 创建静态库.a文件
		
我使用过的Linux命令之ar - 创建静态库.a文件 本文链接:http://codingstandards.iteye.com/blog/1142358 (转载请注明出处) 用途说明 创建静 ...
 - 【转】SVN linux命令及 windows相关操作(三)
		
TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具.通过使用它,我们可以可视化的管理我们的版本库.不过由于它只是一个客户端,所以它不能对版本库进行权限管理. TortoiseS ...
 - 【转】SVN linux命令及 windows相关操作(一)
		
从以下博客转载和整理: http://www.cnblogs.com/richcem/archive/2011/01/08/1930823.html http://blog.wpjam.com/m/t ...
 - SVN常用命令与分支操作
		
1.基本操作 1.0 创建版本库: Svnadmin create /data/repos 2.0 修改配置文件 Auth文件 [groups] admin=shguo [/] @ad ...
 - SVN使用教程之-分支/标记 合并 subeclipse  (转)
		
首先说下为什么我们需要用到分支-合 并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正 进行到一半的工作[ ...
 - SVN使用教程之——分支、合并
		
首先说下为什么我们需要用到分支-合并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作[某个 ...
 - SVN使用教程之-分支/标记 合并 subeclipse
		
首先说下为什么我们需要用到分支-合并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作[某个 ...
 - 【转】SVN linux命令及 windows相关操作(二)
		
转自这里:http://www.uml.org.cn/pzgl/200904246.asp 1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么要用SVN? 4 怎么 ...
 - git入门四(分支创建合并)
		
熟悉git分支的原理是掌握了git的精髓,因为git和我们常用的源码管理系统有很大的区别和优点在分支上可以体现出来,一般我们常用的源码管理系统分支都是需要创建新目录,有全新的源码copy,一般都需要创 ...
 
随机推荐
- Android关于主线程和非主线程
			
必须在主线程执行的任务: (1)UI更新 必须在非主线程中执行的任务 (1)Http请求 如执行:ImageHelper.getInstance().loadImageSync(picUrl); 外面 ...
 - JavaWeb学习记录(六)——用户登录功能之Cookie
			
private Cookie nameCookie=null; private Cookie passCookie=null; private Cookie cookieUser; ...
 - Apache的https协议配置
			
一.http协议和https协议的传输格式 http:文本格式的协议 https:二进制格式的协议 二.x509.3证书格式: 证书格式的版本号 证书序列号 证书签名算法 证书颁发者 有效期 持有者的 ...
 - IOS中如何获取手机的当前IP
			
网上有许多类似的帖子.在搜索了资料以后.觉得下面的方法是最简单的. 使用的时候直接把类方法拖到自己新建的分类中就行. .h文件 #import <Foundation/Foundation.h& ...
 - Draw a Border around any C# Winform Control
			
public class MyGroupBox : GroupBox { protected override void OnPaint(PaintEventArgs e) { base.OnPain ...
 - Java——银行业务调度系统
			
 需求: 模拟实现银行业务调度系统逻辑,具体需求如下: Ø 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口. Ø 有三种对应类型的客户:VIP客户,普通 ...
 - ES VS Hbase
			
http://db-engines.com/en/system/Elasticsearch%3BHBase
 - Unity入门知识
			
参考书:<Unity3D 游戏开发> ● scene图中按F键:放大,居中当前选中的物体 ● 坐标轴:红-x轴,绿-y轴,蓝-z轴 ● 逐帧运行程序: ● OnGUI:可以用来画界面 ● ...
 - 安全-分析深圳电信的新型HTTP劫持方式
			
ISP的劫持手段真是花样百出,从以前的DNS(污染)劫持到后来的共享检测,无不通过劫持正常的请求来达到他们的目的. 之前分析过通过劫持HTTP会话,插入iframe来检测用户后端有无共享行为,但后来移 ...
 - C++静态存储,动态存储
			
什么是静态存储,动态存储静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束. 动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放.典型的例子是函数的 ...