关于cvs merge的问题的研究

-----邮件原件-----
主题: 关于cvs merge的问题的研究

上次merge时丢失数据的问题,经过初步研究,我用下面的例子重现了这个现象,并有了初步的结论,请看看。

我以下图为例,框内数字是文件的内容

5256394_201101051523310386

1、当前版本是1.2.2.2时,合并1.8,用-j的操作如下:

cvs -z9 -q update -P -S -j1.8 -- test.txt (in directory E:scm测试机scmtest777)
RCS file: /data/cvsroot/scmtest/777/test.txt,v
retrieving revision 1.2
retrieving revision 1.8
Merging differences between 1.2 and 1.8 into test.txt

***** CVS exited normally with code 0 *****

结果是:

5256394_201101051524320198

可以看出cvs是把1.8和1.2的差异合并到1.2.2.2,现在由于1.8和1.2没有任何差异,所以合并后的结果中没有‘2’。

2、当前版本是1.2.2.2时,合并1.8,用-j -j的操作如下:

cvs -z9 -q update -P -S -j1.2.2.2 -j1.8 -- test.txt (in directory E:scm测试机scmtest777)
RCS file: /data/cvsroot/scmtest/777/test.txt,v
retrieving revision 1.2.2.2
retrieving revision 1.8
Merging differences between 1.2.2.2 and 1.8 into test.txt

***** CVS exited normally with code 0 *****

结果是:
5256394_201101051524590714

可以看出cvs是用1.8替换了1.2.2.2作为合并的结果。

3、当前版本是1.8.2.1时,合并另一分支上的1.2.2.2,用-j 的操作如下:

cvs -z9 -q update -P -S -j1.2.2.2 -- test.txt (in directory E:scm测试机scmtest777)
RCS file: /data/cvsroot/scmtest/777/test.txt,v
retrieving revision 1.2
retrieving revision 1.2.2.2
Merging differences between 1.2 and 1.2.2.2 into test.txt
rcsmerge: warning: conflicts during merge

***** CVS exited normally with code 0 *****

结果是:

5256394_201101051525370277

可以看出cvs是把1.2.2.2和1.2的差异合并到1.8.2.1中。

4、当前版本是1.8.2.1时,合并另一分支上的1.2.2.2,用-j -j的操作如下:

cvs -z9 -q update -P -S -j1.8.2.1 -j1.2.2.2 -- test.txt (in directory E:scm测试机scmtest777)
RCS file: /data/cvsroot/scmtest/777/test.txt,v
retrieving revision 1.8.2.1
retrieving revision 1.2.2.2
Merging differences between 1.8.2.1 and 1.2.2.2 into test.txt

***** CVS exited normally with code 0 *****

结果是:

5256394_201101051526250089

可以看出cvs是用1.2.2.2替换了1.8.2.1作为合并的结果。

结论:

cvs支持的是分支的差异合并,不支持2个独立文件的合并。

为了支持我们现有的开发模式和习惯,我们需要找一个linux环境下的字符方式的第三方合并工具以代替cvs merge,但现在还没找到这样的工具。

转载于:https://my.oschina.net/tadcat/blog/147642

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值