薛海丹:分支的创建与合并

1. 创建分支

命令:svn cope(cp)

请务必基于主干创建分支

$svn cp http://svn.alibaba-inc.com/repos/crm/zeus/trunk http://svn.alibaba-inc.com/repos/crm/zeus/tags/20070928_r_release/
2. 分支合并到主干,保证工作拷贝是主干版本

命令:svn info

$svn info | grep URL
3. 检查需要合并的分支的历史,取分支创建时的版本

命令:svn log --stop-on-copy -q URL

$svn log --stop-on-copy -q http://svn.alibaba-inc.com/repos/crm/zeus/tags/20070928_r_release/
------------------------------------------------------------------------
r16206 | huangcong | 2007-09-28 16:31:27 +0800 (Fri, 28 Sep 2007)
------------------------------------------------------------------------
r16205 | huangcong | 2007-09-28 16:30:55 +0800 (Fri, 28 Sep 2007)
------------------------------------------------------------------------
r16180 | bing.yanb | 2007-09-28 09:38:08 +0800 (Fri, 28 Sep 2007)
------------------------------------------------------------------------
r16179 | bing.yanb | 2007-09-28 09:37:57 +0800 (Fri, 28 Sep 2007)
------------------------------------------------------------------------
r16178 | shifeng.wangsf | 2007-09-28 09:26:21 +0800 (Fri, 28 Sep 2007)
------------------------------------------------------------------------
r16176 | shifeng.wangsf | 2007-09-28 09:14:16 +0800 (Fri, 28 Sep 2007)
------------------------------------------------------------------------
r16174 | jessica.zhangj | 2007-09-28 09:04:19 +0800 (Fri, 28 Sep 2007)
------------------------------------------------------------------------
4. 选取创建分支时的版本开始合并,起始选取16174,结束版本选最新HEAD

命令:svn merge

$svn merge -r 16174:HEAD http://svn.alibaba-inc.com/repos/crm/zeus/tags/20070928_r_release/ .
5. merge后的状态检查

命令:svn st
当出现C的状态时,就表明你的文件有冲突了,而你需要做的就是:沟通交流,手工解决!执行svn revert FILE_NAME!

使用merge时,合并的起始版本一般选取stop-on-copy的版本,即创建分支时的版本。请避免分支名变更或分支地址移动之类的操作,避免合并不完全!

如果发现merge时提示Skipped

可能性及解决方案:

  • 本地工作拷贝的某些需要合并的文件被删除
    解决:svn up 将删除的文件更新回到工作拷贝
  • 需要新增文件在工作拷贝中已经存在同名文件,但未纳入版本库
    解决:svn st | grep ? | xargs -s 100000 rm -rf
  • 其他
    请使用svn revert -R 将工作拷贝恢复到未修改的状态,再进行merge。
    ***********************************************************
    在合并之前使用svn st查看一下工作拷贝的状态,是比较严谨的作法!
    ***********************************************************
a、
本地工作拷贝的某些需要合并的文件被删除
$ svn st
!      map
$ svn merge -r 16174:HEAD http://svn.alibaba-inc.com/repos/crm/zeus/tags/20070928_r_release/java/com/ali/zeus/bzo
Skipped missing target: 'map/AliZeusLeadsFilterkeyMapBuilder.java'
Skipped missing target: 'map/AliZeusLinkmanLogMapBuilder.java'
Skipped missing target: 'map/AliZeusLeadsLogMapBuilder.java'
Skipped missing target: 'map/AliZeusBlacklistMapBuilder.java'
Skipped missing target: 'map/AliZeusLeadsAppendMapBuilder.java'
Skipped missing target: 'map'

b、
需要新增文件在工作拷贝中已经存在同名文件
$ svn st
?      BaseAliZeusBlacklist.java
?      AliZeusLeadsFilterkeyPeer.java
?      AliZeusBlacklistPeer.java


?      AliZeusBlacklist.java
$ svn merge -r 16174:HEAD http://svn.alibaba-inc.com/repos/crm/zeus/tags/20070928_r_release/java/com/ali/zeus/bzo
Skipped 'BaseAliZeusBlacklist.java'
Skipped 'AliZeusLeadsFilterkeyPeer.java'
Skipped 'AliZeusBlacklistPeer.java'
Skipped 'AliZeusBlacklist.java'
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=14616371" dc:identifier="http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=14616371" dc:title="分支的创建与合并" trackback:ping="http://b2b-doc.alibaba-inc.com/rpc/trackback/14616371" /> </rdf:RDF> -->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值