`
devon.k
  • 浏览: 90584 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用svn开发,目录的约定与开发流程

阅读更多

Subversion有一个很标准的目录结构,是这样的。
比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是

svn://proj/
|
+-trunk
+-branches
+-tags

这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。

对于这几个开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发(比如freebsd),因为互联网的开发模式是完全不一样的。
第一种方法,使用trunk作为主要的开发目录。
一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码 处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。当下一个版本/阶段的开发任务开始,继续在trunk 进行开发。
此时,如果发现了上一个已发行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(Developing Version)无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。
例如,刚刚发布1.0,正在开发2.0,此时要在1.0的基础上进行bug修正。
按照时间的顺序

  1. 1.0开发完毕,代码冻结
  2. 基于已经冻结的trunk,为release1.0打tag
    此时的目录结构为
    svn://proj/
                 +trunk/  (freeze)
                 +branches/
                 +tags/
                         +tag_release_1.0 (copy from trunk)
  3. 2.0开始开发,trunk此时为2.0的开发版
  4. 发现1.0有bug,需要修改,基于1.0的tag做branch
    此时的目录结构为
    svn://proj/
                 +trunk/  ( dev 2.0 )
                 +branches/
                               +dev_1.0_bugfix (copy from tag/release_1.0)
                 +tags/
                         +release_1.0 (copy from trunk)
  5. 在1.0 bugfix branch进行1.0 bugfix开发,在trunk进行2.0开发
  6. 在1.0 bugfix 完成之后,基于dev_1.0_bugfix的branch做release等
  7. 根据需要选择性的把dev_1.0_bugfix这个分支merge回trunk(什么时候进行这步操作,要根据具体情况)

这是一种很标准的开发模式,很多的公司都是采用这种模式进行开发的。trunk永远是开发的主要目录。

分享到:
评论

相关推荐

    SVN版本控制方案

    #### 三、SVN工作流程约定 在实际开发过程中,为了保证代码的质量和稳定性,需要遵循一定的工作流程: 1. **获取工作拷贝**:使用`SVN checkout`或`SVN switch`从Trunk获取一个新的工作拷贝。 2. **创建分支**:...

    svn版本管理教程

    - **分支管理**: 使用SVN的分支功能,可以在不影响主干代码的情况下进行实验性开发。 #### 三、SVN基本配置 - **仓库创建**: 由配置管理负责人建立SVN仓库,并设定用户权限。 - **强制注释设置**: - **操作步骤**:...

    svn项目共享部署文件

    他们可以使用svn客户端(如TortoiseSVN)来克隆仓库,进行本地开发,然后将更改提交回仓库。当需要部署项目时,可以从svn仓库中拉取最新代码,或者设置自动化的部署脚本来确保服务器上的代码始终保持最新。 总结来...

    SVN手册 For Subversion 1.7

    - **导入文件和目录**:可以使用`svn import`命令将现有的文件和目录结构一次性导入到仓库中。 - **推荐的仓库布局**:通常建议在仓库的根目录下创建多个顶级目录,分别用于不同类型的资源,例如`trunk`用于主开发...

    开发代码流程.pptx

    10. **前端与中间件开发流程**:开发流程不仅涉及后端代码,还包括前端和中间件的开发。前端主要关注用户体验和界面交互,中间件则处理业务逻辑和数据交换,它们都需要遵循同样的规范和测试流程。 综上所述,一个...

    hudson+maven+svn的简单自动化部署,目前本人已经使用在现网了

    总的来说,通过Hudson、Maven和SVN的集成,开发者可以构建出一套高效且可靠的自动化部署流程,极大地提高了开发效率和软件质量。只需按照上述步骤操作,便能在实际项目中实现这一自动化部署方案。

    Jenkins+Maven+Svn实现代码自动打包与发布.docx

    在现代的软件开发流程中,自动化是提升效率和减少错误的关键。本文主要讲解如何通过Jenkins、Maven和Svn这三个工具实现代码的自动打包与发布。首先,我们需要理解这三个工具的基本功能: Jenkins 是一个开源的持续...

    PHP网站开发规划方案

    **开发流程与工具** 开发流程通常包含一系列步骤,从需求分析、设计、编码、测试到部署和维护。在这个案例中,提到了一个简明的网站组开发流程图,涵盖了这些基本阶段。开发工具的选择至关重要,服务器配置包括WEB...

    敏捷开发

    3. **客户合作高于合同谈判** - 鼓励与客户的紧密合作,确保产品符合需求,而不是仅仅依赖前期的合同约定。 4. **响应变化高于遵循计划** - 在面对不断变化的需求时,敏捷开发提倡灵活调整,以适应市场和用户需求的...

    一个项目产生多个定制版本的管理流程

    "多项目定制版本管理流程" ...使用 SVN+Ant 来简化项目与产品、项目与项目之间的分支管理可以提高开发效率和版本控制的可靠性。但是,这需要我们对 SVN 的使用非常熟悉,并且需要遵守一定的规范和约定。

    nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建二

    在本篇中,我们将深入探讨如何构建一个完整的IT开发流程,包括使用Nexus作为Maven仓库、Subversion(SVN)作为版本控制系统、Jenkins(Hudson)进行持续集成、Maven作为构建工具,以及禅道(ZenDo)作为项目管理软件...

    PHP网站开发方案

    在PHP网站开发中,一套完整的开发方案至关重要,它涵盖了团队组织、开发流程、技术选型、编码规范以及安全策略等多个方面。以下是对这些关键知识点的详细解析: **一、开发成员** 1. **项目主管**:负责整个项目的...

    让开发自动化 用 Eclipse 插件提高代码质量

    本文将深入探讨如何利用 Eclipse 插件来优化开发流程。 一、Eclipse 插件概述 Eclipse 插件是基于 Eclipse 平台的可扩展模块,它们可以增强 Eclipse 的功能,满足特定的开发需求。Eclipse 插件体系基于 OSGi 模块...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    脚注:使用svn revert 提交你的修改 检验历史 产生历史修改列表 检查历史修改的详情 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 浏览版本库 svn cat svn list 获得旧的版本库快照 有时你只需要清理 ...

    Myeclipse的Web开发插件

    用户只需通过简单的几步操作,即可快速搭建Web项目的结构,包括WEB-INF目录、src目录以及默认的web.xml配置文件。 2. **JavaServer Pages (JSP)**:Myeclipse提供了强大的JSP编辑器,支持自动完成、语法高亮、错误...

    .net软件开发脚本规范V1.0.pdf

    描述中提到的规范包括了基本标准、SQL脚本标准、代码标准、JS标准、SVN标准、日本与会议规范以及其他相关规范,意味着开发者将从多个角度获得指导,以确保开发过程中的代码、脚本的标准化、统一化,从而提升代码质量...

    J2EE开发规范通用版

    - **目的**:本规范旨在标准化GDCCMS项目的开发流程,通过规范化软件工程实践,提升开发效率,确保代码质量,促进团队协作,使软件产品更易于维护与升级。 - **面向范围**:适用于所有参与GDCCMS项目开发、实施的...

    createKeep

    在日常开发中,我们经常会遇到一些问题,比如在使用SVN提交项目时,如果项目中包含了空目录,SVN可能会因为找不到任何文件而拒绝提交。为了解决这个问题,我们可以采取创建特殊文件`.keep`的方法,这就是...

    如何构建快速的mvc开发环境

    本文将详细介绍如何构建这样一个环境,特别是在网络速度较慢的情况下,如何利用内部资源来优化开发流程。 首先,我们需要准备必要的开发工具和组件: 1. **Eclipse Mars (4.5.2)**:作为内网开发工具,Eclipse是一...

    2008微软软件工程项目开发文档

    微软的开发文档可能会介绍其推崇的编程规范,如命名约定、注释标准、代码复用策略等,以及如何使用Visual Studio等工具进行高效开发。 四、测试阶段 测试是保证软件质量的重要环节。文档会涵盖单元测试、集成测试、...

Global site tag (gtag.js) - Google Analytics