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

编程入门 行业动态 更新时间:2024-10-27 02:19:10

薛海丹:<a href=https://www.elefans.com/category/jswz/34/1762439.html style=分支的创建与合并"/>

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

1. 创建分支

命令:svn cope(cp)

请务必基于主干创建分支

$svn cp  /
2. 分支合并到主干,保证工作拷贝是主干版本

命令:svn info

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

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

$svn log --stop-on-copy -q /
------------------------------------------------------------------------
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 / .
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 
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 
Skipped 'BaseAliZeusBlacklist.java'
Skipped 'AliZeusLeadsFilterkeyPeer.java'
Skipped 'AliZeusBlacklistPeer.java'
Skipped 'AliZeusBlacklist.java'
<!-- <rdf:RDF xmlns:rdf="" xmlns:dc=".1/" xmlns:trackback="/"> <rdf:Description rdf:about=".action?pageId=14616371" dc:identifier=".action?pageId=14616371" dc:title="分支的创建与合并" trackback:ping="" /> </rdf:RDF> -->

更多推荐

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

本文发布于:2024-03-13 15:50:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734324.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分支   薛海丹

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!