最近项目用上了svn分支管理,因为项目太过庞杂,版本迭代也过于频繁,致使多个版本的代码交杂在一起,难以维护,无法保证其中某个版本的稳定性。当然,我们也用过很土的办法,代码复制一份出来,但是,这个副本也需要加上新开发的功能。
所以,我们决定使用svn分支管理。当然,这有代价,svn版本管理对二进制文件不友好,可能文件分支合并时二进制文件会难以处理。(这里说的二进制文件,泛指所有非文本文件,比如说美术资源,策划文档)
svn分支简述
使用分支最主要的目的是,多个分支可以并行,相互不干扰,而且任何时候都可以合并。其次,容易保证主干的稳定性。
没有分支的时候,你的svn可能是这样的:
就一份代码存在主干(trunk),当然也不会有主干这个说法。开发完1.0,继续开发2.0,版本一个一个迭代。
有了分支后,你的svn可能就是这样的了:
主干用来存放稳定的代码,每个版本都会开一个分支,等版本完成后再合并到主干。版本一个一个迭代,但可以并行开发。
svn分支管理
接下来,简单讲解下 如何使用svn做分支管理。
第一步,建立主干分支目录结构
第二步,创建分支
在主干目录 trunk 右键,在svn菜单选择Branch/tag...
步骤①是分支地址,这里直接以 /branches/1
步骤②是取trunk版本,HEAD revision表示最新版本,其他可通过 show log选择
执行 OK 后,到branches 目录 svn update 就可以看到最新的分支了。
第三步,合并分支到主干
分支就是开发目录了,现在分支提交一个文件做测试。
然后,合并这个文件分支到主干。
现在到主干目录,右键svn菜单选Merge...
这个是将分支或主干的修改合并到当前工作目录,继续如下。
接下来点完成,如果没冲突的话,分支文件就合到主干了。
但这里还要一个操作,就是在主干提交分支合过来的文件。
题外话,之所以要有这一步,除了对分支内容进一步修改,还可以同时合并多个分支。选择权交给用户。
另外,主干内容合到分支,也是使用Merge 命令。
svn分支应用
根据项目的不同,实际上的分支架构也会不同。以我们项目为例,我们是做游戏的,项目过于庞杂,版本迭代非常频繁。在版本1.1还没完成时,我们可能就要开发2.0版本,这样,版本1.1和版本2.0就要并行开发。而且,我们对稳定性有非常高的要求。
为此,我们设计了这样的svn架构。
测试分支
为了保证主干稳定,我们加了测试分支(如 rel_1.1的测试分支为 rel1.1_test )。测试分支1.1是在分支1.1开发结束后开的,等待测试修复bug完成后,就会把测试分支1.1合入主干及分支1.1。合并完成后,这个测试分支将会关闭。
多分支并行
因为项目需求较多,版本迭代繁杂,所以在版本1.1还没结束时,就开了版本2.0的分支。当分支2.0需要测试合并到主干时,就会从主干合并最新的文件到2.0测试分支,测试通过后,再合并到主干。
分支合并的时机
对我们而言,不同分支的最大区别是功能上线的时间点。我们根据上线周期划分功能,拆分到不同分支。因为开发需求多,迭代过于频繁,所以靠后的分支对比之前的分支通常只是多了某些新功能。这样,分支的出现,避免了未开发完成的功能影响了已开发完的功能,导致当前版本的不稳定。所以,合并分支的时机就是这个分支的功能要不要上线。
这样,主干永远是稳定的,也只有经过测试的内容,才会合入主干。同时,多个版本也可以并行。
参考:http://blog.csdn.net/mycwq/article/details/51793847
分享到:
相关推荐
#### 二、SVN分支管理的目标与原则 **目标:** 1. **并行开发**:支持多个版本的同时开发,提高整体开发效率。 2. **环境独立**:确保各个版本和环境(如开发环境、测试环境、生产环境等)之间相互独立,避免相互...
"svn分支管理详解" svn分支管理是版本控制系统中的一种常用技术,用于管理项目的不同版本和变更。通过创建分支,可以让开发者在不影响主干的同时,进行新功能的开发和测试。在本文中,我们将详细介绍svn分支管理的...
SVN分支管理使用说明,以图片方式示意一个项目如何创建并管理SVN分支【管理员文件选择错了】
SVN 分支的创建与合并是版本控制系统中非常重要的特性,可以帮助开发者更好地管理和维护代码。通过创建分支,可以将新的特性或 bug 修复工作与主干分离,避免对主干的干扰。当新的特性或 bug 修复工作足够稳定之后,...
在实际开发中,SVN的分支管理策略可以帮助团队有效地组织工作,如使用特性分支进行新功能开发,使用hotfix分支快速修复生产环境的bug,以及使用release分支准备产品的发布。了解并熟练掌握这些基本操作是SVN协同开发...
【SVN 分支合并基本操作】是软件开发中配置管理工具 Subversion (SVN) 的核心功能之一,它允许开发团队协同工作,各自在独立的分支上开发,然后将改动合并回主干,以保持代码的稳定性和一致性。以下是详细的操作步骤...
下面是对SVN分支与合并的详细讲解。 1. SVN分支创建: 在SVN中,创建分支通常是为了进行长期的特性开发或隔离修复工作。你可以通过`svn copy`命令或者在图形界面工具中选择“创建分支”选项来实现。例如,要从...
本文将从SVN分支管理的结构模式、规则模式、使用场景、优缺点等方面,详细介绍几种常见的分支管理模式,旨在为开发者提供参考依据,帮助他们根据项目的实际需求选择最合适的分支管理模式。 #### 二、SVN分支管理...
SVN 分支与合并详解 SVN(Subversion)是一...SVN 的分支与合并功能可以帮助我们更好地管理软件开发过程,提高项目的效率和质量。但是,需要注意的是,在使用分支与合并时,需要遵守一定的规则和惯例,以免出现问题。
SVN(Subversion)是一种开放源代码的版本控制系统,相比RCS和CVS,它采用了分支管理系统。SVN的主要特点是支持分布式版本控制,能够对文件和目录进行版本控制。 svn目录结构: * 每个子系统单独一个目录 * 每个子...
#### 三、SVN分支管理的最佳实践 1. **明确命名规则**:为每个分支和标签指定清晰且有意义的名称,有助于提高团队成员之间的沟通效率。 2. **定期同步**:定期将主分支(`trunk`)的最新更改合并到功能分支(`branch`)...
以下是 SVN 代码管理使用的详细步骤和一些关键概念: 1. **安装 SVN 客户端**: - 首先,你需要下载并安装 Subversion 客户端。你可以从官方或第三方网站如 http://www.svnhost.cn/ 下载最新版本的客户端。 - ...
3. 内部修订编号:内部修订编号描述了源代码的 SVN 修订号,主要由开发人员和测试人员使用。 命名规范 1. 默认 Trunk 上面的都是产品。 2. 产品 Branch 命名规范:Branch_fix_V1.2.0_20170531(创建分支时写明用途...
SVN(Subversion)是一种版本控制系统,用于管理代码和其他文件的变更历史。在团队协作中,SVN 提供了创建分支和合并分支的功能,以便开发者可以在不影响主线开发的情况下进行独立的工作。下面将详细介绍如何在 SVN ...
三、分支的管理与合并 1. **查看分支状态** 使用`svn status`命令检查分支上的更改。 2. **更新分支** 如果其他团队成员在主分支上有更新,你可以使用`svn update`命令将这些更改合并到你的分支。 3. **合并分支...
#### 四、SVN的安装与使用 ##### 安装 - **Windows环境下**:推荐使用**TortoiseSVN**,版本1.4.8,这是一款图形化的SVN客户端,易于使用。 - **Linux环境下**:多数Linux发行版默认已安装SVN,无需额外操作。 ####...