当前位置: 技术问答>linux和unix
cvs的tag和branch的区别在哪里,它们分别用在哪种场比较好?
来源: 互联网 发布时间:2015-05-28
本文导语: 我有个程序分成了两个版本(支持的数据库不同),现在要把它们放在cvs服务器里,又不想建成两个project,怎样把它们放在cvs里比较好呢?希望以后对这两个版本的修改和release都很方便,不会引起源码混乱。 cvs的tag...
我有个程序分成了两个版本(支持的数据库不同),现在要把它们放在cvs服务器里,又不想建成两个project,怎样把它们放在cvs里比较好呢?希望以后对这两个版本的修改和release都很方便,不会引起源码混乱。
cvs的tag和branch我粗略的了解了一下,理解上出现了混乱,我觉得用要用branch才能解决我的问题。但是我不知道branch该在什么时候添加?
望大家多多指点。谢谢!
cvs的tag和branch我粗略的了解了一下,理解上出现了混乱,我觉得用要用branch才能解决我的问题。但是我不知道branch该在什么时候添加?
望大家多多指点。谢谢!
|
通过tag取到的源码不能在其基础上上传,而branch则可以
例如,a.c有5个版本,1.1--1.5,用tag方式取到该文件的1.3版,修改后不能上传到服务器成为1.6版,必须做些处理才行。branch无此问题。
按你的要求,tag与branch均不适合, 你应该写一个好的makefile,通过参数决定编译哪个数据库驱动和版本(即debug版或release版),将注意力集中在源码编写上,而不是cvs。
试一试,祝你好运!!
例如,a.c有5个版本,1.1--1.5,用tag方式取到该文件的1.3版,修改后不能上传到服务器成为1.6版,必须做些处理才行。branch无此问题。
按你的要求,tag与branch均不适合, 你应该写一个好的makefile,通过参数决定编译哪个数据库驱动和版本(即debug版或release版),将注意力集中在源码编写上,而不是cvs。
试一试,祝你好运!!
|
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解决.
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解决.
|
用版本号区分两个版本
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。