zoukankan      html  css  js  c++  java
  • svn命令行创建和删除分支和tags

     

     

    目录

    创建分支

    • 创建一个分支
      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
     
     
  • 相关阅读:
    菜鸟看懂算法以后之一:头痛的64次左移
    C语言通过指针数组和二维数组读取文件
    C++中构造函数调用构造函数
    bnuoj53075 外挂使用拒绝
    [CodeForces]String Reconstruction
    BNU-2017.7.4排位赛2总结
    BNU-2017.7.5排位赛3总结
    BNU-2017.7.3排位赛1总结
    微软大楼设计方案(困难)
    最长公共子序列针对小字符集的算法
  • 原文地址:https://www.cnblogs.com/clphp/p/7403439.html
Copyright © 2011-2022 走看看