停止更新,敏捷测试及TestOps解决体系,关注订阅号TestOps

SVN的分支与合并

上一篇 / 下一篇  2007-05-23 10:40:54 / 个人分类:配置管理

51Testing软件测试网8mn.sCT o

正好在回答论坛某帖子的时候去整理了一下这个概念

s0yyCl!kd0

w.?S g!SQ h#?}1Bm0对于svn的tag,更多的是一个显示用的,给人一个可读(readable)的标记。51Testing软件测试网k4]sJP

51Testing软件测试网Mmkr q6@*H

因为在实现上,tag和branch,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。51Testing软件测试网d \ci6Y6_iX
这里也就假定,对人,操作者,对他的要求就很高了。
&Z"[$`P?3GR8cp0也就是使用svn的时候,什么时候用tag,什么时候用branch,完全由人主观的根据规范来选择,而不是强制的(比如cvs)。51Testing软件测试网u\`9K4E\

zg%_2`o nWs0一般,我在使用的过程中,51Testing软件测试网.{hJpni3LMh)N
tag是用来做一个milestone的,不管他是不是release,他都是一个可用的版本。这里,应该是只读的。
9g!aft'n};d|5m0branch,是用来做并行开发的,这里的并行是指和trunk进行比较。51Testing软件测试网0N7h*d6za}
比如,3.0开发完成,这个时候要做一个tag,tag_release_3_0,然后基于这个tag做release,比如安装程序什么的。51Testing软件测试网Qy&F D6G`x
trunk进入3.1的开发,但是3.0发现了bug,那么就需要基于tag_release_3_0做一个branch,branch_bugfix_3_0,基于这个branch进行bugfix,等到bugfix结束,做一个tag,tag_release_3_0_1,然后,根据需要决定branch_bugfix_3_0是否并入trunk。
{Hx6Oi)_Fx;a3o051Testing软件测试网c9\^&`~8F kU
对于svn还要注意的一点,就是他是全局版本好,其实这个就是一个tag的标记,所以我们经常可以看到,什么什么release,基于xxx项目的2xxxx版本。就是这个意思了。但是,他还明确的给出一个tag的概念,就是因为这个更加的可读,毕竟我记住tag_release_1_0要比记住一个很大的版本号容易的多。

3^i$J.fV\J0
简单说:51Testing软件测试网 _(q*Y$y w rN9Sx(c

x.l9RwD$s0trunk(开发主干,可读写)51Testing软件测试网.V)r:i%l7bm9Oq
branches(并行分支开发,一般基于某tag,可读写)
$@ tU4dN0mM)y y0tags(发布,一般只读)
V] r4_9O O0应该是个很清晰的脉络。
 

相关阅读:

TAG: svn 分支 合并 SCM

引用 删除 qingna0238   /   2009-04-01 21:40:24
云层老师:做为一个测试人员,自已用SVN,可以什么好处呀?能提高工作效率吗?我想如果整个测试团队都不用的话,只有自己用是不是就没有意义了?
 

评分:0

我来说两句

Open Toolbar