svn命令行创建和删除分支和tags
创建分支
- 创建一个分支
1
svn copy svn://xx.com/repo/trunksvn://xx.com/repo/branches/TRY-something-m'make branches TRY-something'
- 把工作目录转到分支
1
svn switch svn://xx.com/repo/branches/TRY-something
当然,也可以再转到主干: svn switch svn://xx.com/repo/trunk
合并一个分支到主干
一旦分支上的开发结束,分支上的代码需要合并到主干。SVN中执行该操作需要在trunk的工作目录下进行。
- 查找到分支版本
- 方法一:最后一个r11340就是创建分支时的reversion
12
cdbranchsvn log --stop-on-copy - 方法二:
12345
cdtrunksvn -q --stop-on-copy 分支URL#这条命令会查询出自创建分支以后分支上的所有修改,最下面的那个版本号就是我们要找的版本号.#示例:svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24
- 方法一:最后一个r11340就是创建分支时的reversion
- 分支合并到主干
123456789101112
svn merge -r 分支版本号:HEAD 分支的URL#HEAD为当前主干上的最新版本#示例:cdtrunksvn merge -r 12:HEAD svn://192.168.1.177/tags/beta_2009_12_24cdtrunksvn merge --reintegrate http://svn_server/xxx_repository/branches/br_feature001# 分支合并到主干中完成后应当删该分支,因为在SVN中该分支已经不能进行刷新也不能合并到主干。# 合并版本并将合并后的结果应用到现有的分支上svn -r 148:149 merge http://svn_server/xxx_repository/trunk
- 解决冲突:
1234567
svn st |grep^C# 查找合并时的冲突文件,手工解决冲突svn resolved filename# 告知svn冲突已解决svn commit -m""# 提示合并后的版本svn: Aborting commit:'/path/resources/noc'remainsinconflict$ svn revert resources/nocReverted'resources/noc'
两个分支合并
两个分支合并可以拆分为一下两步:
- 第一步:
197从旧主干引出,186打完tag,表示是新主干
合并最新代码的意思是:将新主干与旧主干比对,并添加到197中。这样197既有自己的新增的代码,也同时有最新线上的代码。
|
1
2
3
|
cd 197_Branchsvn merge https://xxx.com/tags/project/project_Old_BL https://xxx.com/tags/project/project_New_BLsvn ci -m 'merge 186 trunk' |
- 第二步:
但是后来,其他人又向186提了代码,所以还需要将186分支(即打了tag后的186,打了tag前的186已是主干)合并至197中。
合并办法:找出186分支,比对与新主干之间的差别,并添加到197中。这样197就有最新的全部代码了。
|
1
2
3
|
cd 197_Branchsvn merge https://xxx.com/tags/project/project_New_BL https:/xxx.com/project/branches/project/186_Branchsvn ci -m 'merge 186 branch' |
合并主干上的最新代码到分支上
|
1
2
3
4
5
6
7
|
cd br_feature001svn merge http://svn_server/xxx_repository/trunk# 如果需要预览该刷新操作,可以使用svn mergeinfo命令,如:svn mergeinfo http://svn_server/xxx_repository/trunk --show-revs eligible# 或使用`svn merge --dry-run`选项以获取更为详尽的信息。 |
发布
产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本。
给当前主干打个标签,并且这个标签不再改动了,但是实际上标签和分支是一个意思,你可以在标签上继续做改动,但这不推荐。
|
1
2
3
4
5
6
7
|
# 建立tagssvn copy svn://xx.com/repo/trunk svn://xx.com/repo/tags/RB-1.0 svn copy http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/tags/release-1.0 -m "1.0 released"# 删除分支或tagssvn rm http://svn_server/xxx_repository/branches/br_feature001svn rm http://svn_server/xxx_repository/tags/release-1.0 |
创建分支
svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_feature001
- 1
- 2
- 1
- 2
获得分支
svn co http://svn_server/xxx_repository/branches/br_feature001
- 1
- 1
合并主干上的最新代码到分支上
cd br_feature001
svn merge http://svn_server/xxx_repository/trunk
- 1
- 2
- 1
- 2
如果需要预览该刷新操作,可以使用svn mergeinfo命令,如
svn mergeinfo http://svn_server/xxx_repository/trunk --show-revs eligible
- 1
- 2
- 1
- 2
或使用svn merge –dry-run选项以获取更为详尽的信息。
分支合并到主干
一旦分支上的开发结束,分支上的代码需要合并到主干。SVN中执行该操作需要在trunk的工作目录下进行。命令如下:
cd trunk
svn merge --reintegrate http://svn_server/xxx_repository/branches/br_feature001
- 1
- 2

- 1
- 2
分支合并到主干中完成后应当删该分支,因为在SVN中该分支已经不能进行刷新也不能合并到主干。
合并版本并将合并后的结果应用到现有的分支上
svn -r 148:149 merge http://svn_server/xxx_repository/trunk
svn命令行创建和删除分支和tags的更多相关文章
- svn 命令行创建和删除 分支和tags
创建分支 svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xx ...
- mysql navicat 及命令行 创建、删除数据库
1.命令行创建数据库 create database mybatis default character set utf8 collate utf8_general_ci; drop database ...
- svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复
合并步骤:(1)先切换到分支:(2)svn merge trunk . (3)svn sw trunk (4)svn merge --reintegrate branch . svn merge ht ...
- [SVN] svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复
转载自:http://www.cnblogs.com/xulb597/archive/2012/07/18/2597311.html 合并步骤:(1)先切换到分支:(2)svn merge trunk ...
- svn命令行批量删除和批量添加
svn命令行批量删除和批量添加 如果使用svn的命令行,例如在linux下的终端中使用,svn的添加命令是svn add,删除命令是svn del,但是缺乏批量的操作,如果我在资源管理器中,手动添加了 ...
- Mac SVN 命令行
Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...
- [MAC] Mac下的SVN命令行
转载自: http://www.cnblogs.com/snandy/p/4072857.html Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.1 ...
- Linux环境SVN命令行使用经验总结(转)
在windows机器上开发得差不多了之后,打包传送到开发机编译,在开发机上解决编译错误. [缺点] 浪费时间在打包解包,机器间传输代码. 在windows机器上开发之后,check in代码进分支,在 ...
- 转:svn命令行操作
原文:http://zhumeng8337797.blog.163.com/blog/static/10076891420115218821912/SVN命令行 -- ::| 分类: CVS |字号 ...
随机推荐
- Beta版本项目计划
小队名称:PHILOSOPHER 小组成员 [组长]金盛昌(201421122043).刘文钊(20142112255).陈笑林(201421122042) 张俊逸(201421122044).陈志建 ...
- selenium3 浏览器驱动下载及验证
下载浏览器驱动 当selenium升级到3.0之后,对不同的浏览器驱动进行了规范.如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动. 各浏览器下载地址: Firefox浏 ...
- PHP安全过滤函数
在PHP中,有些很有用的函数开源非常方便的防止你的网站遭受各种攻击,例如SQL注入攻击,XSS(Cross Site Scripting:跨站脚本)攻击等. 1. mysql_real_escap ...
- 压缩tar: Removing leading `/’ from member names
这个错误根据网上的很多说法都是谁 缺少-P参数造成的,只需要使用 -zcvfP即可解决问题,经验证并不是 网上很多文章都是互相抄写的,我引起的这个问题的原因是参数使用的方式不对 -f参数是用来制定压缩 ...
- 将EF项目从dbfirst转化为codefirst
一个脚本服务的项目,之前是先设计的数据库表,采用EF的dbfirst做的映射.项目完成后,出现迁移瓶颈. 1.dbfirst项目,如果数据库表结构做了调整,需要重新映射 2.当出现表结构一致,但数据库 ...
- 转自:strcmp函数实现及详解
strcmp函数是C/C++中基本的函数,它对两个字符串进行比较,然后返回比较结果,函数形式如下:int strcmp(constchar*str1,constchar*str2);其中str1和st ...
- 汽车为什么选择了CAN总线技术?
汽车为什么选择了CAN总线技术? 围绕“汽车为什么选择了CAN总线技术?汽车CAN总线技术到底是怎么一回事?采用汽车CAN总线技术有哪些优点?汽车总线的发展趋势”等问题作了一个浅短的介绍: 1. 汽车 ...
- VMware 克隆多台Linux机器并配置IP
1.查看并分配虚拟网络 我们首先要知道 VMware 三种网络模式的区别. ①.Bridged(桥接模式):就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信.在桥接的作用下,类似于把物理主机虚拟为 ...
- odoo之ERP系统
odoo大纲 第一部分:数据库postgressql 大象 第二部分:ORM(API) 第三部分:客户端 用python软件写: .py文件 包含两部分:1.自定义部分,由自己写,定义类和功能. .继 ...
- [Lydsy1805月赛]对称数 BZOJ5361
分析: 这个题,还是蛮有趣的.考虑,如果l,r区间内的所有数出现奇数次,那么[l-1,r]的抑或和等于所得抑或和. 之后怎么维护呢,主席树维护区间抑或和,记得将每个点附上一个ull级别的随机数,之后抑 ...