Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2345381
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: WINDOWS

2009-07-15 19:13:50


对于上图中的情况, 需要把工作分支BR_***(图片最上面的第一个BR)上的工作合并到主分支上, 熟悉CVS revision规则的都知道, 1.* 的revision号就是主分支. 这里展示的是一个特殊情况, 即因为某种原因(这个原因我在另一篇CVS实践的文章里提过到), 1.26 到 1.27 之间的修改已经被合并到了1.25.2.1 中, 所以, 在再次合并时, 发生了冲突, 我对冲突的解决之道是3方会谈:
1 分叉点版本
2 工作分支最新版本
3 主分支(合并后要提交的目标分支)的最新版本

用文本比较工作打开 1<==>2,  以及1<==3>, 对比参照.

但有时候上面的3方会谈方法不生效, 因为改动的冲突点太多, 靠眼睛盯着来合并, 很难保证不出错. 提前的反向合并(由主分支合并到工作分支)是造成这种情况的主要原因.

对上面这种情况, 我很庆幸当初在提交1.25.2.1 时, 加了注释, 说明这次提交来自对哪两个版本的合并, 直到这时我才注意到,  虽然CVSNT对传统的CVS作了增强, 它可以用紫红线显示出某个版本合并自哪个版本, 但是, 它只能对被合并的两个版本中较靠后者连接, 在此例中, 你可以知道 1.25.2.1  是来自对某一个版本与 1.27 的合并的结果, 但不能通过CVSNT 知道是那"某个版本"到底是哪个, 这个要靠注释来说明.

上面一段是题外话, 我要说的是对于这种情况的合并工作, 要特别注意, 需要同时打开比较的两组文件是

1.25.2.1  <==>  1.25.2.6  (1.25 与 1.25.2.1 之间的不同应该被跳过去, 因为已经被合并过)
1.27      <==>  1.28      (假设在主分支上有这么一个版本)

所需要做的是这两段diff 之间的合并.

阅读(1076) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~