目录

创建分支

  • 创建一个分支

    1
    svn copy svn://xx.com/repo/trunk svn://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

      1
      2
      cd branch
      svn log --stop-on-copy
    • 方法二:
      1
      2
      3
      4
      5
      cd trunk
      svn -q --stop-on-copy 分支URL #这条命令会查询出自创建分支以后分支上的所有修改,最下面的那个版本号就是我们要找的版本号.
       
      #示例:
      svn log -q --stop-on-copy svn://192.168.1.177/tags/beta_2009_12_24
  • 分支合并到主干

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    svn merge -r 分支版本号:HEAD 分支的URL   #HEAD为当前主干上的最新版本
     
    #示例:
    cd trunk
    svn merge -r 12:HEAD svn://192.168.1.177/tags/beta_2009_12_24
     
    cd trunk
    svn merge --reintegrate http://svn_server/xxx_repository/branches/br_feature001
    # 分支合并到主干中完成后应当删该分支,因为在SVN中该分支已经不能进行刷新也不能合并到主干。
     
    # 合并版本并将合并后的结果应用到现有的分支上
    svn -r 148:149 merge http://svn_server/xxx_repository/trunk
  • 解决冲突:

    1
    2
    3
    4
    5
    6
    7
    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既有自己的新增的代码,也同时有最新线上的代码。

1
2
3
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就有最新的全部代码了。

1
2
3
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'

合并主干上的最新代码到分支上

1
2
3
4
5
6
7
cd br_feature001
svn 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
# 建立tags
svn 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"
 
# 删除分支或tags
svn rm http://svn_server/xxx_repository/branches/br_feature001
svn 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的更多相关文章

  1. svn 命令行创建和删除 分支和tags

    创建分支 svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xx ...

  2. mysql navicat 及命令行 创建、删除数据库

    1.命令行创建数据库 create database mybatis default character set utf8 collate utf8_general_ci; drop database ...

  3. svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复

    合并步骤:(1)先切换到分支:(2)svn merge trunk . (3)svn sw trunk (4)svn merge --reintegrate branch . svn merge ht ...

  4. [SVN] svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复

    转载自:http://www.cnblogs.com/xulb597/archive/2012/07/18/2597311.html 合并步骤:(1)先切换到分支:(2)svn merge trunk ...

  5. svn命令行批量删除和批量添加

    svn命令行批量删除和批量添加 如果使用svn的命令行,例如在linux下的终端中使用,svn的添加命令是svn add,删除命令是svn del,但是缺乏批量的操作,如果我在资源管理器中,手动添加了 ...

  6. Mac SVN 命令行

    Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...

  7. [MAC] Mac下的SVN命令行

    转载自: http://www.cnblogs.com/snandy/p/4072857.html Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.1 ...

  8. Linux环境SVN命令行使用经验总结(转)

    在windows机器上开发得差不多了之后,打包传送到开发机编译,在开发机上解决编译错误. [缺点] 浪费时间在打包解包,机器间传输代码. 在windows机器上开发之后,check in代码进分支,在 ...

  9. 转:svn命令行操作

    原文:http://zhumeng8337797.blog.163.com/blog/static/10076891420115218821912/SVN命令行 -- ::| 分类: CVS |字号 ...

随机推荐

  1. 阿里八八Alpha阶段Scrum(1/12)

    任务分配 叶文滔:整体框架UI设计.作为组长进行任务协调 俞鋆:后端服务器及数据库搭建 王国超:日程模块多日显示部分设计 黄梅玲:日程模块单日显示部分设计 林炜鸿:日程模块文本添加部分设计 张岳.刘晓 ...

  2. 小程序报错数据传输长度为 xxx 已经超过最大长度 xxx

    这个错误通常在通过base64给images赋值时发生,setData()微信设置的一次最大传输长度为1M,所有如果编码后的base64字符串长度超过了1M就会报这个错误. 如何解决? 我们可以采取曲 ...

  3. python 爬取全量百度POI

    在网上找了很多关于爬取百度POI的文章,但是对“全量”的做法并没有得到最终的解决方案,自己写了一个,但还是不能实现全量POI抓取,能够达到至少50%的信息抓取.注意:这里所指“全量”是能够达到100% ...

  4. Scala学习之路 (六)Scala的类、对象、继承、特质

    一.类 1.类的定义 scala语言中没有static成员存在,但是scala允许以某种方式去使用static成员这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员用 ...

  5. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-3-Django项目实例

    使用 Django 我们现在将使用 Compose 配置并运行一个 Django/PostgreSQL 应用.在此之前,先确保 Compose 已经安装. 1.通过编辑 Dockerfile文件来指定 ...

  6. 解决:linux 固定ip 导致ping 外网unknown host

    首先说下问题产生场景:最近搞jenkins搭建持续集成,搞完后发现服务器ip(ifconfig 红色)老是变化,一怒之下果断修改ip [root@bogon etc]# ifconfigeth0 Li ...

  7. Arduino入门笔记(7):利用1602、1302实现时钟和定时器

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 常常听到老妈在做饭时说“开锅15分钟后叫我一下”,为何不做个定时器,来提醒老妈呢 ...

  8. WebView之禁止调用第三方浏览器

    一.WebView官方简洁: 一个显示视图的web页面.在这个类的基础上你可以滚自己的web浏览器或简单地显示一些网上的内容.它使用WebKit渲染引擎显示web页面,包括方法向前和向后导航历史,放大 ...

  9. P1983 车站分级

    题目描述 一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...

  10. 通过cgroup给docker的CPU和内存资源做限制

    1.cpu docker run -it --cpu-period=100000 --cpu-quota=2000 ubuntu /bin/bash 相当于只能使用20%的CPU 在每个100ms的时 ...