多年前第一次接触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(Subversion)是一种广泛使用的版本控制系统,它的核心概念包括trunk、branch和tag,这些都是进行协同开发和代码管理的重要元素。下面将详细解释这些概念以及它们在实际项目中的应用。 1. **Trunk**:Trunk通常...
SVN中通过Trunk、Branch、Tag三个主要的概念来组织和管理版本库的内容。 ##### 1. Trunk主干 - **定义**:Trunk是SVN仓库中的主要开发区域,存放项目的主线代码。 - **用途**:主要用于日常开发和维护,所有的修改...
资源中有 SVN 主干(trunk)、分支(branch )、标记(tag) 的详细解释,和作用 并带 SVN分支与合并 的详细操作文档(附图)。 SVN分支与合并的总结 1.分支(branche)的创建。 1、分支创建是建立在主干上的。 2、创建...
本文将深入探讨 SVN 中的 trunk、branch 和 tag 三个核心概念,以及它们在实际开发场景中的应用。 首先,trunk(主干或主线)是项目的主要开发分支,代表了项目的最新稳定状态。新功能的开发通常在这个分支上进行,...
Branch 和 Tag 的区别 Branch 和 Tag 都是使用 copy 实现的,但它们的用途不同。Branch 是用于并行开发的,用于存储阶段性的 release 版本或不同用户客制化的版本。Tag 是用于记录项目的历史版本的,通常是只读的...
- Branch/Tag:创建分支或标签,分支用于长期并行开发,标签用于标记特定版本。 4. SVN仓库管理: SVN仓库是存储所有版本历史的地方。管理员可以通过WebDAV协议提供仓库访问,或者通过SVN命令行工具进行权限管理...
创建 Branch 分支或者 Tag 标签非常容易,只需要在 TortoiseSVN 中创建对应的文件夹,然后将其提交到 SVN 服务器中。例如,创建一个名为 v1.0 的分支,用于发布一个版本的文件。 Branches 分支的修改和使用 Merge ...
5. **Branch and Tag(分支与标签)**: 分支允许并行开发,而标签则用于创建特定版本的快照,通常用于发布里程碑或版本。 6. **Revision(版本)**: SVN 记录每次提交,每个提交都有一个唯一的修订号,可以追踪到...
除了标准的SVN指令(例如checkout、update、commit、merge等)之外,其亦提供tag与branch处理(无需要为了转换不同的tag或branch而去处理URL)、内建档案比对与冲突处理器(conflict solver)等。使用者无需安装额外的工具...
7. 分支与标签(Branch & Tag):分支用于开发新功能或修复,不干扰主线;标签用于标记特定版本,通常用于发布里程碑。 三、SVN与其他工具的集成 SVN可以与各种开发环境和IDE集成,如Eclipse、IntelliJ IDEA、...
- 在弹出的“Copy (Branch/Tag)”对话框中,设置目标 URL 为分支路径(如`svn://localhost/project/branches`),点击“OK”。 4. **切换工作副本到分支**: - 右键点击项目,选择“Team” -> “Switch to ...
- ** Branch(分支)**和**Tag(标签)**:创建项目副本以进行独立开发或标记特定版本。 **Eclipse SVN插件** Eclipse是一款流行的开源集成开发环境(IDE),支持多种编程语言。为了在Eclipse中使用SVN,需要安装一...
- `SVN分支`(Branch)用于隔离开发新功能或修复错误,完成后合并回主分支。 7. **故障排查与最佳实践** - 确保所有团队成员使用相同版本的SVN客户端,避免因版本不兼容导致的问题。 - 经常清理工作副本,避免...
- SVN还支持标签(Tag)和分支(Branch)功能,便于创建项目版本和进行平行开发。在MyEclipse中,这些操作同样可以通过“Team”菜单实现。 - 我们还可以使用SVN的“Revert”功能撤销本地未提交的更改,或者使用...
除了标准的SVN指令(例如checkout、update、commit、merge等)之外,其亦提供tag与branch处理(无需要为了转换不同的tag或branch而去处理URL)、内建档案比对与冲突处理器(conflict solver)等。使用者无需安装额外的工具...
在Subversion(简称SVN)这样的版本控制系统中,打基线通常是通过创建标签(tag)或分支(branch)来实现的。这两种方式都可以用来保存项目的特定状态,但它们之间有一些细微的区别: - **标签(tag)**:通常用于...
- **Branch(分支)**和**Tag(标签)**:用于支持灵活的开发策略,分支用于并行开发,标签用于标记特定版本。 4. **SVN协同工作流程** - 开发者先从仓库检出最新代码到本地。 - 在本地完成代码修改后,进行`svn...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理文件和目录的历史版本,便于多人协作开发。在软件开发中,SVN客户端和服务端工具是必不可少的组成部分。 ** SVN客户端工具 ** 1. **TortoiseSVN**:这是...