SVN版本合并(merge)原理与操作指南

本文介绍SVN中的合并操作,包括合并的基本概念、冲突产生的原因及解决办法。SVN通过比较不同版本之间的差异来完成合并,并可能产生冲突,需手动解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  1. SVN的合并操作其实是一系列操作的组合:
    • 主干或某个分支上的一组修订(即合并的源头)应用到另一个分支或主干(即合并的目标)的working copy(本地工作拷贝);简单说,合并包括三要素——源头、目标、目标的working copy;
    • 如果出现冲突(conflict),需手工解决冲突;
    • 最后提交,提交时还要在SVN备注中标明这是一次合并,如merge -r 5645:5650 svn://10.191.17.67/p17_ii/development/sourcecode/Branchs/P17-II/2011-03-17 发布前又有小改动
  2. 为何会出现冲突,如何解决:
    • 源不仅是个url,还包括一个修订范围,例如前面红字示例中的-r 5645:5660;
    • 假设源头包含5646、5648、5650三个修订版,working copy的当前修订版是5649;
    • 那么合并时SVN实际进行的操作是:diff 5646 5648,然后apply到working copy;diff 5648 5650,然后apply到working copy;
    • 这个过程中,svn也会分别diff 5646 5649,diff 5648 5649,如果这两个diff任何一个与上文的两个diff中的任何一个恰好改了同一行代码,则出现冲突,相应的文件中会用标记分别标明这两种diff差异,同时会生产3个临时文件,分别是.working、.left_r5646、.right_r5650;
    • 一般选择手工解决冲突,但如果很对,也可以直接保留.right_r5650作为最终结果,
  3. 更多内容,详见svnbook

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值