svn使用命令创建与合并分支

由于最近工作中使用的都是linux系统,所以很多操心都是使用命令行,而svn在linux中也没有很好的图形化工具,不像windows有大名鼎鼎的"小乌龟"TortoiseSVN。正好svn中的主干分支之前在windows操作过,但是还是不是很清楚,正好借助这次机会使用命令行方式操作svn创建与合并分支加深理解,在这里把操作过程和操作命令在这里记录下,供有需要的人参考。

创建分支

创建分支

svn copy http://svnurl/trunk http://svnurl/branches/testbranch -m 'make branch testbranch' 

下载主干到本地

svn checkout http://svnurl/trunk

下载分支到本地

svn checkout http://svnurl/branches

主干分支切换命令:

svn switch http://svnurl/branches/branch_name  
svn switch http://svnurl/trunk

查询分支创建版本

方式一(本地查询)

  1. cd testbranch进入分支目录;
  2. 使用命令查询,最下面一次的版本即为创建分支的版本号
    svn log --stop-on-copy
    

方式二(远程查询)

使用如下命令,最下面的一次版本号即为创建分支时的版本号

svn log -q --stop-on-copy http://svnurl/branches/branch_name

合并分支到主干

  1. 在分支内容修改后,cd trunk进入主干目录。
  2. 使用如下命令合并分支修改的内容到本地。
    svn merge -r 分支创建版本号:HEAD http://svnurl/branches/branch_name .
    

    命令说明:   
    分支版本号:分支需要合并到主干的起始版本号,由于我们一般需要合并创建分支时到最新版本之前的差别,所以一般取分支创建版本号,可以使用上节命令查询;
    HEAD: 需要合并的结束版本号,一般我们取最新版本做比较,所以这里为HEAD;
    分支版本ULR: 分支版本url,具体到分支名字;
    . : 由于已经进入到trunk目录,将差别应用到当前工作目录。

合并主干到分支

  1. 主干内容修改并合并后,cd branches/branch_name进入分支目录。
  2. 使用如下命令合并主干到分支:
    svn merge -r 分支创建版本号:HEAD http://svnurl/trunk .
    

提交修改

  1. 查询状态
    svn status
    
  2. 解决冲突
    使用如下命令查询冲突,如果有冲突需要手动解决冲突。
    svn status | grep ^C
    
  3. 告知冲突解决
    svn resolved filename
    
  4. 提交修改
    svn commit -m 'comment'
    

有时我们可能想要还原文件到创建时版本,需要使用还原命令:

svn revert filename
原文地址:https://www.cnblogs.com/liuchengcc/p/8796577.html