标准SVN开发目录结构模式详解

开发 项目管理
SVN开发你是否熟悉?本文就向大家介绍一下如何使用SVN开发进行目录的约定以及开发流程,希望本文的介绍对大家的学习有所帮助。

本节和大家一起来学习一下使用SVN开发目录的约定与开发流程,在我们学习SVN的过程中这是经常会遇到问题,和大家分享一下解决方法,欢迎大家一起来学习SVN开发。

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

SVN有一个很标准的目录结构,是这样的。
比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是
svn://proj/
|
+-trunk
+-branches
+-tags
这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。

对于这几个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://proj/
+trunk/(freeze)
+branches/
+tags/
+tag_release_1.0 (copyfromtrunk)

2.0开始开发,trunk此时为2.0的开发版
发现1.0有bug,需要修改,基于1.0的tag做branch
此时的目录结构为
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(什么时候进行这步操作,要根据具体情况)

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

【编辑推荐】

  1. Apache+SVN权限管理实例剖析
  2. 删除SVN目录及从服务器端删除SVN版本库文件方法详解
  3. SVN库的目录结构详解
  4. 如何实现SVN仓库目录规范化管理?
  5. 经验总结:TortoiseSVN客户端使用心得
责任编辑:佚名 来源: csdn.net
相关推荐

2010-05-26 19:05:06

SVN库

2010-06-02 10:47:37

SVN开发

2010-04-08 09:27:04

PHP设计模式结构模式

2010-05-28 08:52:18

SVN项目

2013-05-23 15:18:13

Android开发移动开发程序目录结构

2010-05-27 11:12:10

SVN目录结构

2010-05-26 19:36:34

SVN目录结构

2010-05-27 10:53:54

SVN目录结构

2024-06-04 00:00:04

2010-06-01 12:49:04

SVN分支模式

2009-11-09 16:14:49

WCF服务元数据

2010-11-03 16:50:23

DB2目录结构

2013-01-17 15:26:21

Android工程目录结构Android开发

2010-11-02 09:56:14

DB2目录结构

2012-01-13 10:45:56

企业应用架构

2024-02-05 08:11:30

架构模式单体

2009-08-03 09:09:49

find命令详解find命令目录结构

2010-06-02 15:29:06

SVN版本控制

2010-05-20 12:43:37

SVN Update命

2014-03-06 10:50:59

iOS开发
点赞
收藏

51CTO技术栈公众号