`
awdxzc
  • 浏览: 335677 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SVN管理

阅读更多
一般在进行项目开发的时候,我们都会用到SVN作为源代码管理工具。这里我想记录下我们项目中一般对于SVN项目管理的一些经验。

先分析SVN目录。
Project
-- trunk
-- branch
-- tag
-- release


    一般我们在trunk下进行开发。可以理解trunk就是我们项目的主线,这条线是一直进行并向后延伸的。当我们的项目开发到一定的milestore的时候,我们或许会有要求发布一个beta版本,这个时候我们会从trunk下打一个tag包到tag下并给其一个版本号。这里说到版本号,我想介绍下版本号的定义规则。版本号一般是这样构成:bigVersion.smallVersion.fixVersion。我们一般是这么理解的。当一个产品需要发布的时候我们都会给这个产品定义一个大的版本号,可以从1开始也可以从0开始,这个自己可定。每个版本中都会在设计上或者规划上有子产品,这样就会有其smallVersion,当然,我们不能保证每个版本出来都是没有bug或者需求更改的,于是会有第三个version标识:fixVersion。
    好,我们现在将我们的第一个版本发布到了tag,请注意tag中只有我们项目的源代码,这个时候是我们的第一个版本的一个终结点,必须得保证我们的这个tag中源代码版本是能够正常编译并运行的。提到这里,我们项目一直是使用hudson来进行CI控制的,也就是持续集成,保证每天大家提交的代码都可以正常编译发布。稍后我会写点心得来描述下CI工具,包括hudson和CC。不扯远了,回到tag上面来,tag发布前确定了日期,我们也可以通过SVN来控制在trunk上的提交权限,保证在tag打包前我们测试通过的版本不会因为后期程序员持续在trunk下开发提交代码给它带来的版本上的污染。tag发布后,我们第一个版本结束,但是很显然我们不能保证程序在第一个版本中不会出现BUG,这个时候怎么办呢?这个版本的bug我要Fix就必须从tag源码包中打一份到branch目录,负责相应模块的程序员将在branch上对其所属的bug进行修复,这里修复的bug肯定不会再在这个版本上得以体现了,如果只是针对这个版本的bug修复我们可以定义一个新的fixVersion在下次发布产品的时候进行修复。程序员修改完bug后,在branch上面mege到trunk下面去,这样我们的trunk永远保证的是一条主线在行进,因为有bug的修改bug到trunk上来,没有bug的继续在trunk上进行新功能的开发。这样trunk永远是动态进行的。我们在项目管理的时候也会主要关注trunk的进度并制定我们的任务。
    这里还有一个文件夹没有提到就是release,它是做什么用的呢?release顾名思义是发布,我们将我们的tag下的源代码打包成一个应用ear,war或者甚至是可执行的程序到release下,我们的QA直接从release下获取我们的产品包,进行测试,这里将程序员使用的和QA使用的完全分离也是有一定的好处,QA完全可以从源代码构建中脱离,这些也都可以理解为程序员构建需要考虑的BUG范围之内,所以QA主关注release包中最终将要奉献给用户的产品。

    以上是我的SVN管理的一些理解,如果有什么不对或者不全的地方,也请大家提出来。我们一同探讨。


分享到:
评论

相关推荐

    SVN管理员使用指南

    ### SVN管理员使用指南:深入解析 #### Subversion简介与架构 Subversion,简称SVN,是一种广泛使用的开源版本控制系统,其设计旨在管理文件和目录的版本控制,支持数据的回溯与历史修改记录查看。SVN的核心优势...

    svn 管理工具(web版)

    Web版的SVN管理工具则将这些功能集成到一个可以通过网页访问的应用中,为团队提供了更便捷的远程协作环境。 标题中的“svn 管理工具(web版)”指的是一个基于Web的SVN客户端,允许用户通过网络浏览器来操作SVN仓库...

    windows下将文件脱离svn管理

    标题“Windows下将文件脱离SVN管理”涉及的是在Windows操作系统中如何解除Subversion(SVN)对特定文件或文件夹的版本控制。Subversion是一个广泛使用的版本控制系统,用于跟踪和管理源代码和其他文件的变更。有时候...

    基于web的SVN管理系统,支持HTTP协议、SVN协议、支持LDAP认证、Docker部署.zip

    【标题】中的“基于Web的SVN管理系统”指的是一个通过Web界面进行版本控制的系统,它使用Subversion(SVN)作为其核心版本控制系统。SVN是一个广泛使用的开源工具,用于跟踪文件和目录的更改,便于团队协作。通过Web...

    svn管理工具和说明

    **SVN管理工具详解** Subversion(简称SVN)是一种广泛使用的版本控制系统,它允许团队在开发项目时协同工作,管理文件和目录的不同版本。SVN的核心理念是追踪和控制文件的变化,使得开发者可以轻松地回溯到项目的...

    SVN管理项目视频教程

    ### SVN管理项目视频教程知识点详解 #### 一、SVN简介与原理 **SVN**(Subversion)是一种广泛使用的版本控制系统,它可以帮助团队管理和追踪软件开发过程中的代码变更历史。相较于早期的版本控制系统如CVS,SVN在...

    svn 管理工具

    ### SVN管理工具详解 #### SVN概述 Subversion(SVN)是一种开源的版本控制系统,它在软件开发领域中被广泛采用。相比于早期的版本控制系统如RCS和CVS,SVN提供了一种更为先进和高效的分支管理机制。其设计初衷即...

    SVN管理工具(32位)【全】

    标题“SVN管理工具(32位)【全】”暗示我们将讨论适用于32位操作系统的全面的SVN管理工具。这通常包括安装SVN服务器和客户端,以及如何在32位环境下配置和使用它们。 描述中的“VSS+SVN管理工具(32位)安装方式...

    sublime (SVN管理工具)

    sublime (SVN管理工具),图形化管理工具,需要安装在win2003等系统

    SVNMANAGER SVN 代码管理 LINUX SVN管理

    【SVNMANAGER SVN 代码管理 LINUX SVN管理】 在软件开发过程中,版本控制是至关重要的一个环节,它能帮助团队协同工作,跟踪代码修改历史,以及有效地管理代码库。Subversion(简称SVN)就是这样一款广泛应用的版本...

    svn管理开源工具

    【svn管理开源工具】 在IT行业中,版本控制系统是软件开发不可或缺的一部分,它们帮助开发者跟踪代码的变更、协作和管理项目。Subversion(简称svn)就是这样一种广泛使用的版本控制系统,它允许团队成员对共享代码...

    SVN管理器.7z

    "SVN管理器"是用于更方便、高效地操作SVN仓库的工具,它可以提供图形化的用户界面,使得非技术用户也能轻松进行版本控制操作。 在SVN管理器中,你可以执行以下关键操作: 1. **仓库克隆与初始化**:SVN管理器可以...

    SVN管理手册-中文

    这个压缩包包含了一系列关于SVN管理的中文资源,包括"TortoiseMerge.pdf"、"TortoiseSVN.pdf"和"svnbook-1.5-final-zh.pdf"。这些文档将帮助用户深入了解SVN的原理、安装、配置以及日常使用。 "TortoiseSVN.pdf"是...

    SVN管理员手册

    在Subversion(简称SVN)中,管理员手册主要涵盖了对SVN服务器的管理和配置,包括用户管理、权限控制以及问题解答。以下是手册中的关键知识点的详细说明: 1. **配置SubVersion登陆用户名和密码** SVN使用`...

    SVN管理代码经验谈

    在这个"SVN管理代码经验谈"中,我们将深入探讨SVN的基本概念、安装与配置、日常操作以及最佳实践。 首先,理解SVN的核心概念至关重要。 SVN仓库是存储所有项目文件的地方,每个文件都有一个唯一的版本号,记录着...

    工具svn管理工具

    "工具svn管理工具"这个标题指的是使用特定的 SVN 客户端工具来管理和操作 SVN 仓库。 描述中提到的“可以部署集中式项目管理”,这表明 SVN 是一种集中式的版本控制系统,与分布式版本控制系统(如 Git)不同。在...

    SVN管理软件+Maven小项目.rar_SVN管理软件+Maven小项目_svn

    **SVN管理软件** 1. **SVN的基本概念**:SVN是Subversion的缩写,它维护着一个中央仓库,存储所有项目文件的各个版本。用户可以对文件进行增删改查操作,并通过提交来保存变化,同时记录每一次修改的历史。 2. **...

    SVN_管理员使用手册

    《SVN管理员使用手册》是针对Subversion(简称SVN)管理系统的一份详细指南,旨在帮助管理员有效地管理和配置SVN服务器。本手册适用于那些需要控制版本库访问权限、管理用户账户以及解决常见问题的SVN管理员。 1. ...

Global site tag (gtag.js) - Google Analytics