Zhang Jiuan’ Notes

cvs版本控制管理(分枝管理)

    昨天自已也因为cvs的版本控制困惑了几个小时,查阅了相关资料,最终获得了自已想要的结果。实际整个流程梳理一下,很简单,不过对于当时不知道的情况下,就是一个很麻烦的事情了。现在以BLOG的形式记录如下,希望自已以后不再犯这样的困惑,也希望能给阅读了此篇文章的朋友有一点帮助。

    背景:因为项目的并行开发,在主干上打了一个分枝作为其它项目的开发基线。现在主干已经上线,分枝也开发完毕。因此想将主干上的代码合并到分枝中来,以达到在上线的时候不复盖主干的代码的目的。

    过程:查阅了相关的资料,有如下几个相关函数。cvs update -j(合并)cvs update -r (更新到某个版本) cvs tag -b (加某一分枝) cvs log 查看相关cvs log信息 cvs status当前版本状态。

    为了便于说明与不涉及相关工作信息,下面以main代表主干,以branch代表分枝。首先在主干上打了main tag,命令如下:cvs tag main,添加一个test.txt,修改文件:

cat test.txt

   aaaaaaaaaaaaaaaaa

  bbbbbbbbbbbbbbb

  ccccccccccccccccc

然后在这里打上分枝的tag,命令如下:cvs tag -b branch,现在修改test.txt文件:

cat test.txt

   aaaaaaaaaaaaaaaaa

  bbbbbbddddddddddd

  ccccccccccccccccc

这样以保证主干和分枝是有充突的。

好下一步应该是合并了。操作命令如下:cvs tag -j main。结果不是想要的结果,并没有任何冲突,为什么呢?由此自已经过仔细思考和查阅相关资料,实现虽然打了分枝的tag,但实际并没有切到分枝,因此修改的仍旧在主干上。

为此做如下测试:

    cvs tag mian; cvs status,可以看出是在主干上。cvs tag -b branch; cvs status,此时虽说打了分枝,但并没有切到分枝上,实际仍然在主干上开发。因此上面并不会充突。实际切到分枝也是很简单的。

    cvs update -r branch,好了,此时再cvs update -j main,终于看到了可爱的<<<<<<<<<<<, >>>>>>>>>>>>冲突信息了。

 

多谢

张久安

If you enjoyed this post, make sure you subscribe to my RSS feed!

No Comments, Comment or Ping

Reply to “cvs版本控制管理(分枝管理)”

You must be logged in to post a comment.

返回顶部