SVN中trunk、branch、tag区别

 虽然一直都在用svn作项目管理,但是一直都是傻傻的分不清主干、分支。今天小编就来详细介绍一下:


【branch】

分支:版本控制系统的一个特性就是能够把各种修改分离出来放在开发品的一个分割线上。这条线就被称为分支。分支经常被用来实验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,开发品的分支就可以混合回主干线上。

按照Subversion的说法,一个branch就是主干项目的一个拷贝,如下图所示:


每一个trunk下面的项目都有好多分支。因为开发团队中的成员有多个,每个成员为了保证工作的团队效果,同时又不影响其他同时的开发以及线上的项目,需要在自己的分支上进行代码操作,并不断地提交自己的修改,从而使得每一次修改在repository中都有记录。简单说来,branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,等到开发结束以后合并回trunk中。

假设一个这样的场景:

项目组长分配了一个开发新功能(新增支付宝支付方式)的任务给小冯,于此同时小董正在做一个使用银行卡支付的功能。这两个功能有很多公用的js和css等。这个时候,如果小冯不创建自己的分支,而是直接在主干项目上进行开发提交,就会直接影响到小董正在进行的项目的效果,这两个人就会陷入无限的版本冲突或恢复版本的死循环中,两个人本来关系还不错,但是还可以会因为给彼此造成的不良影响而影响同事之间的关系等等。。。

从而,可以通过分支开发,每个人都在自己的分支上进行功能的开发测试。就会省却好多不必要的冲突问题。等到开发完成之后,再将最终代码合并到主干项目中去。我想这才是SVN设置分支、主干的意义所在。

那么,如何建立自己的分支并进行合并分支的操作呢?

第一步,需要查看一下项目中是否有trunk、brunches、tag这三个基本的文件夹:


第二步,需要在brunches文件夹中新建自己的分支:


第三步,在自己的分支文件夹中copy一份主干中需要自己负责的代码:


完成了这三步,就可以在分支上开发自己的项目了。

第四步,待项目完成之后,需要合并分支到主干上。


进入到CollabNet Merge设置界面,一路next,



更新完成之后,点击next,进入下一步:


然后点击Finish就完成了合并分支到主干啦。

【trunk】

主干,作为开发主目录。一般存放的是当前最新最稳定的代码以及其他项目资料。每个项目通常只有一个主干。

我们在分支上将程序开发完成并通过测试后,需要将其合并到主干上面。

那么,如何合并主干呢?

第一步,需要下载一份trunk上的代码,然后在需要合并到主干上的项目上右击Merge并进入:


一路next,然后进入


下一步,点击Merge


然后,会弹出提示:


至此,就完成了合并主干啦。

【tag】

tag,字面意思是图标,在SVN里面也是做标记的意思。举个最简单的例子。咱们所做的项目不可能只是一个版本,很多情况下会是版本不断迭代更新的。从V1.0到V2.0、V3.0等。这个时候就可以使用tag做版本的标记了。
具体打tag的方式就是,将目前最新版最稳定版本的代码及其他资料,全部备份到tag文件夹中,并做好版本记录。



【学习小结】
通过这次的SVN实践,对里面的主干、分支以及打tag有了清楚的认识。真是实践出真知。大家也快尝试一下吧。


  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
资源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)的删除 删除跟删除其他目录是一样的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值