1.摘要
本文描述了利用SVN进行项目版本管理的方法,涉及项目版本号命名规则、SVN目录结构、第三方代码库的管理、版本创建、发布、修订、合并等行为的方法和原则。
2.版本号命名规则
版本号采用主版本号.次版本号.修订号组成。版本的重大变化主版本号增1,次版本号和修订号归零。版本的相对较小的变化主版本号维持不变,次版本号增1,修订号归零。当一个版本发布后出现了bug需要修订,此时,主、次版本号不变,修订号增1。
注意:对于主动性的程序功能性的变化,应该增加主或次版本号,不应该通过修订号来反映。修订号只用于对已发布版本的bug修订,一个版本的修订号的大小某种程度上可以反映一个版本发布后的稳定情况。
3.SVN目录结构
项目结构
第三方库结构
以项目名称作为SVN仓库名称为项目创建独立的项目仓库。仓库主要结构分为branches和tags。branches为工作目录,tags为发布目录。项目使用到的第三方库独立出来单独组件项目仓库,为整个公司的所有项目所共享,仓库名称为vendor。
3.1项目结构
branches
分支,存放未发布版本。具体的某个版本存放在其下的一个以“RB-版本号”规则命名的文件夹。上图示例为当前存在两个正在开发的版本RB-2.0和RB3.0。分支是开发人员的工作目录,是版本实现过程中的中间成果,具有临时性。版本发布后,相应的分支即可销毁。
tags
标签,存放已发布版本。具体的某个版本存放在其下的一个以“REL-版本号”规则命名的文件夹。上图示例为当前存在两个已发布版本REL-1.0和REL-1.1。该目录只读,即不允许对任何已发布版本做任何修改。
版本内部结构
doc:文档存放目录
src:源码存放目录
bin:可执行文件、动态库、脚本、配置文件等发布项及pdb、mapfile、obj存放目录。
vendor
存放第三方库的变更记录文件change.xls。由于第三方库不常变动且库大,若与项目代码存放在一起,则签出代码量会过大,耗时长。因此项目内部仅存放一个变更记录文件。倘若出现第三库存在变更,例如,某项目从3.0开始,xerces库升级到2.8,则在change.xls文件中登记即可,change.xls结构如下表所示。
库名
|
库版本
|
项目版本
|
变更日期
|
备注
|
ace
|
4.5
|
1.0
|
2010-1-1
|
|
boost
|
1.39
|
1.0
|
2010-1-1
|
|
xerces
|
2.6
|
1.0
|
2010-1-1
|
|
xerces
|
2.8
|
3.0
|
2011-12-29
|
|
上表第4行表示在项目3.0时,xerces库从2.6升级到了2.8。
3.2第三方库结构
第三方库单独成立SVN仓库,位置级别上升为与各项目平级,为公司内各项目所共享,其结构见上图。
4.常见操作
4.1新建版本
当确定需要建立一个版本时,则需要在branches下创建一个相应的版本分支,用于版本实现过程中的配置项管理。分支的创建可以从头创建也可以基于tags中的已发布版本创建。例如,要在REL-1.1的基础上开发2.0,则从tags\REL-1.1创建一个RB-2.0。
4.2日常工作
项目经理在给开发人员分派任务时必须制定版本号,即任务所属版本。开发人员根据任务的版本号属性在相应的工作分支中实现和提交工作成果物。这样,开发人员只需要知道任务所属版本号,无需关心版本之间的关系。项目经理需要对版本及其之间的关系有清晰的认识和规划。
4.3版本发布
当一个版本进入待发布状态后,需要为版本创建发布标签,即从版本分支创建一个版本标签。如2.0,则从branches\RB-2.0创建一个tags\REL-2.0。版本发布人员必须从tags下取发布项进行发布,杜绝发布人员从分支或者其他地方获取发布项进行发布。
4.4版本修订
当一个已发布版本出现bug需要修订时,需要从相应的已发布版本中创建一个分支版本。例如2.0发布后出现bug,则从tags\REL-2.0创建一个branches\RB-2.0.1。注意,修订号必须增加,版本不能回退也不能原地变化,即不管是新功能还是bug修订,只要是变更,版本号必增。带修订版本进入待发布状态后,则进入版本发布流程。
4.5版本合并
当多个版本处于并行工作状态下,例如RB-1.0.1(修复1.0发布后的bug)和RB-1.1(1.0发布后,在此基础上增加的新功能)两个版本并行工作,RB-1.0.1先于RB-1.1完成并发布, 那么RB-1.0.1发布后会创建REL-1.0.1,需要将REL-1.0.1的修改合并到RB-1.1,否则会出现1.0.1修改过的bug在新版本1.1中又重新出现了。
分享到:
相关推荐
在项目管理中,SVN 的使用至关重要,尤其是在多人协作的环境下,它可以帮助解决文件冲突、备份历史版本以及提供版本回溯功能。 ### 安装和配置SVN 在使用 SVN 进行项目文档管理时,首先需要安装相关的软件。通常...
2. 新产品模块:在 Trunk 目录创建工程,然后基于此创建一个 Branch,开发人员在此 Branch 进行开发,功能完成后自测试通过,合并 Trunk 目录,测试人员从 Trunk 版本进行测试,测试通过后,删除 Branch 分支,针对...
提交完成后,我们可以利用SVN的版本控制将项目中的历史版本进行相互的对比,以查看工程文件的差异。 版本控制在PCB设计中的应用可以提高开发效率,减少开发时间和成本,提供一个健壮的合作开发环境。
### 本地使用SVN进行源代码管理 #### 一、SVN简介与需求背景 **Subversion**(简称SVN)是一种广泛使用的开源版本控制系统,主要用于软件开发过程中的源代码管理。相较于传统的版本控制工具如VSS(Visual ...
【SVN项目文档管理方案】 SVN(Subversion)是一种版本控制系统,用于管理软件开发过程中的源代码和其他文档,确保团队协作中文件的一致性和可追踪性。TortoiseSVN是SVN的一个图形化客户端,方便用户在Windows环境...
详细介绍如何在PB中使用SVN进行版本控制的设定步骤,是难得的好资料。 1、如果是单机版使用TortoiseSVN,可以不用安装Subversion,只安装TortoiseSVN以及PBSCC-Proxy即可。 2、安装VisualSVN Server比安装Subversion...
在“svn项目管理”中,我们主要探讨如何有效地利用SVN进行团队协作,跟踪代码更改,以及维护项目版本。 1. **版本控制**:SVN的核心功能是版本控制,它记录每一次对文件或目录的修改,允许用户回滚到以前的版本,...
总结来说,"SVN项目版本库模板"是提高团队开发效率和协作质量的有效工具,通过预定义的目录结构和文件,确保项目管理的一致性和专业性。合理利用模板,可以帮助开发者更专注于代码编写和项目开发,而非基础架构的...
### SVN 安装及使用详解 #### 一、SVN简介 **SVN**,全称为 **Subversion**,是一款非常流行的版本控制系统。与 **CVS** 类似,SVN 是一个跨...通过以上步骤,您可以成功安装和使用SVN进行项目版本管理和协同开发。
### SVN—项目管理工具详解 #### 一、版本控制的重要性及背景 在现代软件开发过程中,版本控制成为了不可或缺的一部分。特别是在多人协作的项目中,如何有效地管理代码版本、跟踪更改历史、解决冲突等问题变得尤为...
### SVN版本管理与项目管理知识点概述 #### 一、Subversion简介 **Subversion**(简称SVN)是一种广泛使用的开源版本控制系统,旨在替代早期流行的**CVS**(Concurrent Versions System)系统。相比于CVS,SVN提供了更...
例如,`SVN对项目文档进行管理.ppt`可能是介绍如何使用SVN进行文档管理的演示文稿,详细讲解了SVN的基本操作和最佳实践。而`CodePub.Com说明.txt`可能是一个关于如何在CodePub平台上使用SVN的指南,CodePub可能是一...
在本文中,我们将对 SVN 进行详细的介绍,并探讨其在版本管理中的应用。SVN(Subversion)是一款开源的版本管理工具,它可以帮助开发团队更好地管理代码的变更、协作和版本控制。SVN 的工作机制是基于 C/S 结构的,...
**SVN**(Subversion)是一种广泛使用的版本控制系统,它可以帮助团队管理和追踪软件开发过程中的代码变更历史。相较于早期的版本控制系统如CVS,SVN在设计上更加稳定、可靠且易于使用。 - **工作方式**:SVN采用中央...
在软件开发过程中,随着项目的迭代更新,如何高效地管理不同版本之间的代码成为了项目管理中的一个重要环节。Subversion(简称SVN)作为一款广泛使用的版本控制系统,提供了强大的分支管理功能,帮助开发者实现多...
SVN的架构设计为可以通过网络访问版本库,这意味着用户可以不受地点限制地使用版本库进行协作工作。 安装SVN和它的组件是操作的第一步。SVN包含了一系列的命令行工具,以及可能的图形用户界面(GUI),用于执行各种...
在软件开发过程中,SVN项目管理工具扮演着至关重要的角色,它允许团队成员协同工作,跟踪每个文件的修改,合并不同人的更改,并且能够轻松回溯到项目的任何历史版本。 "svn1.6"指的是Subversion的1.6版本。这是一个...
在使用Subversion(SVN)进行版本控制时,有时我们需要删除文件或目录中的版本信息,以便将它们从SVN的版本控制中解脱出来。本文将详细介绍两种删除SVN版本信息的方法,分别是通过修改注册表和使用批处理脚本。 ###...
这篇笔记将深入探讨如何使用SVN进行有效的版本管理。 首先,我们需要安装SVN客户端。Windows用户可以下载TortoiseSVN,这是一个直观的图形界面客户端,而Linux或Mac用户通常会使用命令行工具svn。安装完成后,你...
Subversion,简称SVN,是一种广泛使用的开源版本控制系统,其设计旨在管理文件和目录的版本控制,支持数据的回溯与历史修改记录查看。SVN的核心优势在于,它不仅能够处理单一文件的版本控制,还能高效地管理整个项目...