svn中的tag和branch的区别


多年前第一次接触svn,就知道有tag和branch的区别,但一直没搞清楚具体的差异。

现在基本懂一些了,在这里总结一下:
branch是分支,branch的代码是会往前走的。而tag是标签,我理解代码是静止的。
这样说可能比较抽象,举例进行说明。

branch主要会有这些应用的场景:
1、阶段性的版本发到现场使用,但trunk上还需要继续做开发。这时候就会拉一个branch来定位现场问题,并出补丁。trunk继续做开发,互不冲突。
2、需要开发一些定制的需求,这时候也可以拉一个branch专门来做定制需求开发,在定制需求测试完成以后,再合入trunk

tag主要会有这些应用的场景:
1、一个版本转测试,在转测试之前打一个tag。这样这个tag就和转测试的版本是完全一致的,可以很方便地定位问题。
比如说第一天,测试测出问题A,于是在trunk上修改了A.java。然后第二天,测试测出问题B,定位到也是在A.java上,但是由于这个时候A.java已经和测试环境不再一致(因为第一天改了)。那这个时候,用转测试之前的那个tag,就可以用来定位问题B了。
2、要基于一个版本做升级包了,可以先将svn锁库,然后打一个tag。这时候svn库就可以解锁了,trunk上继续提交代码都没关系。然后将原始版本的tag,以及刚打的tag进行比对,制作升级包

总的来说,branch的代码是动态的,还会继续往前走,在合适的时候再合入trunk;而tag的代码是静态的,可以理解为是只读的(当然tag也是可以写的,但这样的话就成了事实上的branch,用branch可能更合适)

资源SVN 主干(trunk)、分支(branch )、标记(tag) 的详细解释,和作用 并带 SVN分支与合并 的详细操作文档(附图)。 SVN分支与合并的总结 1.分支(branche)的创建。 1、分支创建是建立在主干上的。 2、创建分支前将整个porject_name检出到本地,然后主干(trunk) 。 3、右键 选择 分支/标记 。 4、然后,在至路径输入:/branches/分支版本名称。 5、最后选择需要分支版本,点确认,这样分支就建立成功了。 6、再update porject_name就能在branches看到,刚刚创建的分支版本。 7、当然如果要最该分支做修改,就要重新检出了:http://localhost/svn/porject_name/branches/分支版本名称 2.分支的合并 1、分支合并当然也是在主干上操作的。 2、修改完成后,检出整个porject_name到本地,选择主干(trunk) 3、右键 选择 合并(合并类型这里就不简介了文档有详细介绍),选择第一个, 4、然后在合并源ULR 选择需要合并的分支不版本URL,最后在范围写上需要合并的版本号(可以多个), 5、再下一步进行合并。 6、合并完成后,注意 主干(trunk) 是需要提交的,当然也有可能出现冲突。 3.标记(tags)的创建 标记的创建跟分支的差不多,但,标记是不能修改的,具体为什么请看文档, 设置标记目录权限时要设置成只读(当然除开标记创建者咯)。 4.分支(branche)的删除 删除跟删除其他目录是一样的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值