cvs的tag和branch的区别在哪里,它们分别用在哪种场比较好?

lastshrill 2003-12-15 10:15:48
我有个程序分成了两个版本(支持的数据库不同),现在要把它们放在cvs服务器里,又不想建成两个project,怎样把它们放在cvs里比较好呢?希望以后对这两个版本的修改和release都很方便,不会引起源码混乱。
cvs的tag和branch我粗略的了解了一下,理解上出现了混乱,我觉得用要用branch才能解决我的问题。但是我不知道branch该在什么时候添加?

望大家多多指点。谢谢!
...全文
350 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lastshrill 2003-12-30
  • 打赏
  • 举报
回复
过年了,给分
lastshrill 2003-12-16
  • 打赏
  • 举报
回复
楼上说的很对,问题是我们做设计的时候没考虑到会有两个版本。当要加一个新的版本是由于赶时间,就没有用宏或别的东西在编译时区分不同的版本。
现在出现了这种情况,怎样花较小的代价解决这个问题?
lyatcsdn 2003-12-16
  • 打赏
  • 举报
回复
长痛不如短痛,还是早点规范代码编写,现在的遇到问题也提供了一个机会,否则有第三、四个版本呢?到时就死定了。
hmaple 2003-12-15
  • 打赏
  • 举报
回复
tag作用:
1.指示你正工作在那个branch上。(因为每个branch都有一个tag.
2.如果你不想更新一个大目录树的一部分,你可以利用sticky tag.
(sticky tag的定义:If you check out a certain revision (such as 1.4) it will become sticky. Subsequent cvs update commands will not retrieve the latest revision until you reset the tag with cvs update -A.)

什么情况下用branch:
若release1.0已经发布,现在正在开发2.0.这时发现在1.0中发现严重bug,但2.0的code还没有稳定,你就要从1.0建立一个branch.创建branch的时也要指定一个tag,同时文件的版本号都会改变。
楼上说的对,你的问题应该通过#ifdef和makefile解决.
lyatcsdn 2003-12-15
  • 打赏
  • 举报
回复
通过tag取到的源码不能在其基础上上传,而branch则可以
例如,a.c有5个版本,1.1--1.5,用tag方式取到该文件的1.3版,修改后不能上传到服务器成为1.6版,必须做些处理才行。branch无此问题。
按你的要求,tag与branch均不适合, 你应该写一个好的makefile,通过参数决定编译哪个数据库驱动和版本(即debug版或release版),将注意力集中在源码编写上,而不是cvs。

试一试,祝你好运!!
chenzhangf 2003-12-15
  • 打赏
  • 举报
回复
用版本号区分两个版本

19,610

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧