`
cppmule
  • 浏览: 454214 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

常用SVN目录结构简明介绍

    博客分类:
  • SCM
 
阅读更多

本节向大家简单介绍一下一些常用的SVN目录结构,在学习SVN的过程中,你可能会遇到SVN目录结构问题,在这里和大家共同学习一下,希望本文对你的学习有所帮助。
特殊目录名说明
trunk主干,存储最新稳定版本
tag标记,主要保存比较完整理的版本标记,类似里程碑
tranch分支,用于分工操作.该目录下又以各用户名及日期为目录进行存储(推荐)
关于目录(结构举例,相对规范)
/doc文档的根目录
/doc/trunk文档的版本主干,存储最新稳定版本
/doc/trunk/...(内容)
/doc/tag文档的版本标志(类似里程碑)例如:doc_1_0/doc_1_1分别表是1.0本版与1.1版本
/doc/tag/doc_v_1_0/...(内容)
/doc/tag/doc_v_1_1/...(内容)
/doc/branch文档的分支目录(用户分工)
/doc/branch/user1_070308文档的分支目录用户(user1)于2007-03-08号加入分工
/doc/branch/user1_070308/...(内容)
/doc/branch/user2_070101文档的分支目录用户(user2)于2007-01-01号加入分工
/doc/branch/user2_070101/...(内容)
/src源码的根目录
/src/trunk源码的版本主干,存储最新稳定版本
/src/trunk/...(内容)
/src/tag源码的版本标志(类似里程碑)例如:doc_1_0/prj_src_1_1分别表是1.0本版与1.1版本
/src/tag/prj_src_v_1_0/...(内容)
/src/tag/prj_src_v_1_1/...(内容)
/src/branch源码的分支目录(用户分工)
/src/branch/user1_070308源码的分支目录用户(user1)于2007-03-08号加入分工
/src/branch/user1_070308/...(内容)
/src/branch/user2_070101源码的分支目录用户(user2)于2007-01-01号加入分工
/src/branch/user2_070101/...(内容)
Subversion有一个很标准的SVN目录结构,是这样的。
比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是
svn://proj/|
+-trunk
+-branches
+-tags
这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
对于这几个开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发(比如freebsd),因为互联网的开发模式是完全不一样的。
第一种方法,使用trunk作为主要的开发目录。

一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。当下一个版本/阶段的开发任务开始,继续在trunk进行开发。
此时,如果发现了上一个已发行版本(ReleasedVersion)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(DevelopingVersion)无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。
例如,刚刚发布1.0,正在开发2.0,此时要在1.0的基础上进行bug修正。
按照时间的顺序
1.0开发完毕,代码冻结
基于已经冻结的trunk,为release1.0打tag
此时的SVN目录结构为
svn://proj/
+trunk/(freeze)
+branches/
+tags/
+tag_release_1.0 (copyfromtrunk)
2.0开始开发,trunk此时为2.0的开发版
发现1.0有bug,需要修改,基于1.0的tag做branch
此时的SVN目录结构为
svn://proj/
+trunk/(dev2.0)
+branches/
+dev_1.0_bugfix(copyfromtag/release_1.0)
+tags/
+release_1.0 (copyfromtrunk)
在1.0bugfixbranch进行1.0bugfix开发,在trunk进行2.0开发
在1.0bugfix完成之后,基于dev_1.0_bugfix的branch做release等
根据需要选择性的把dev_1.0_bugfix这个分支merge回trunk(什么时候进行这步操作,要根据具体情况)
这是一种很标准的开发模式,很多的公司都是采用这种模式进行开发的。trunk永远是开发的主要目录。请期待下节关于SVN目录结构介绍。

分享到:
评论

相关推荐

    SVN搭建和使用手册

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和跟踪文件和目录的变更。它允许团队成员协同工作,记录每次更改,以便于回溯、合并和恢复错误。本手册将详细讲解SVN的搭建和使用过程,特别是针对中文用户...

    TortoiseSVN 简明使用

    文中将详细介绍 TortoiseSVN 的基本使用方法,并以 WordPress 中文团队使用的 Google Code SVN 服务器为例进行说明。 #### 二、SubVersion (SVN) 简介 Subversion(简称 SVN)是一种开源的版本控制系统,可以用来...

    idea使用简明,内设详细

    Idea 使用简明,内设详细 Idea 是一个功能强大的集成开发环境(IDE),为开发者提供了丰富的功能和工具,以提高开发效率和质量。本文将对 Idea 的一些常用功能和使用方法进行简要介绍。 一、Idea 的优点 Idea 的...

    TortoiseSVN服务器与客户端软件及参考资料.zip

    1. 安装Apache Subversion服务器:这通常涉及下载并安装Subversion服务器软件,配置服务器目录结构,以及设置访问控制策略。 2. 配置SVN仓库:创建新的版本库,定义存储项目数据的物理位置。 3. 配置TortoiseSVN...

    KDevelop User Manual

    - **Automake文件内容**:介绍Automake文件的内容和结构。 - **10.2 Automake管理器操作** - **Automake管理器窗口**:解释Automake管理器窗口的布局。 - **整体视图窗口**:说明整体视图窗口的作用。 - **详细...

    Eclipse中文教程

    - 设置项目属性:输入项目名,选择JRE版本,设置源代码目录结构。 - 创建类(Class):在项目中右键选择“新建”->“类”,填写类名和包名。 4. **编写Java代码** - 自动完成(Code Completion):在编写代码时...

    java代码规范

    版本控制系统对于软件项目的管理至关重要,SVN是一种常用的选择。以下是SVN的一些最佳实践: ##### 1. 代码提交 - **功能点说明**:每次提交时都应附带简明扼要的功能描述或关联的bug编号。 - **避免混合提交**:...

    易语言插入代码到IDE

    易语言是一种专为中国人设计的编程语言,它以简明直观的中文编程语法著称,降低了编程的门槛,使得更多的人能够接触并学习编程。在易语言中,集成开发环境(IDE)是进行程序设计的核心工具,它集成了编写、编译、...

    Java软件开发工程师个人简历-java开发工程师的简历怎么写doc格式文档.docx

    3. **工作经验**: 详细介绍过去的工作经历,包括公司名称、任职时间、职位以及具体职责。 4. **教育背景**: 提供最高学历的相关信息,如学校名称、毕业时间、专业等。 5. **技能专长**: 罗列与应聘职位相关的技能和...

Global site tag (gtag.js) - Google Analytics