两种SVN开发模式实现目录结构布局

开发 项目管理
SVN目录结构的开发模式你是否熟悉?本文就向大家介绍一下常用两种SVN开发目录结构模式中的一种,希望通过本文的能够对SVN目录结构开发模式有一定的认识。

本节接着上节介绍目录结构中SVN开发模式,同时对比一下两种开发模式的优缺点,欢迎大家一起来学习SVN开发,下面是具体介绍。

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

对于这几个SVN开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发(比如freebsd),因为互联网的开发模式是完全不一样的。

第二种方法,在每一个release的branch中进行各自的开发,trunk只做发布使用。
这种开发模式当中,trunk是不承担具体开发任务的,一个版本/阶段的开发任务在开始的时候,根据已经release的版本做新的开发分支,并且基于这个分支进行开发。还是举上面的例子,这里面的时序关系是。

1.0开发,做dev1.0的branch
此时的目录结构
svn://proj/
+trunk/(不担负开发任务)
+branches/
+dev_1.0(copyfromtrunk)
+tags/

1.0开发完成,mergedev1.0到trunk
此时的目录结构
svn://proj/
+trunk/(mergefrombranchdev_1.0)
+branches/
+dev_1.0(开发任务结束,freeze)
+tags/

根据trunk做1.0的tag
此时的目录结构
svn://proj/
+trunk/(mergefrombranchdev_1.0)
+branches/
+dev_1.0(开发任务结束,freeze)
+tags/
+tag_release_1.0(copyfromtrunk)

1.0开发,做dev2.0分支
此时的目录结构
svn://proj/
+trunk/
+branches/
+dev_1.0(开发任务结束,freeze)
+dev_2.0(进行2.0开发)
+tags/
+tag_release_1.0(copyfromtrunk)

1.0有bug,直接在dev1.0的分支上修复
此时的目录结构
svn://proj/
+trunk/
+branches/
+dev_1.0(1.0bugfix)
+dev_2.0(进行2.0开发)
+tags/
+tag_release_1.0(copyfromtrunk)

选择性的进行代码merge
这其实是一种分散式的开发,当各个部分相对独立一些(功能性的),可以开多个dev的分支进行SVN开发,这样各人/组都不会相互影响。比如dev_2.0_search和dev_2.0_cache等。但是这样merge起来就是一个很痛苦的事情。

这里要注意一下的,第六步进行选择性的merge,是可以当2.0开发结束后一起把dev_1.0(bugfix用)和dev_2.0(新版本开发用)merge回trunk。或者先把dev_1.0merge到dev_2.0,进行测试等之后再merge回trunk。
这两种方法各有利弊,***种方法是可以得到一个比较纯的dev_2.0的开发分支,而第二种方法则更加的保险,因为要测试嘛。

以上呢,就是我说的两种SVN开发模式了,具体哪种好,并没有定论。这里大致的说一下各自的优缺点
***种开发模式(trunk进行主要开发,集中式):
优点:管理简单
缺点:当开发的模块比较多,开发人数/小团队比较多的时候,很容易产生冲突而影响对方的开发。因为所有的改动都有可能触碰对方的改动
第二重开发模式(分支进行主要开发,分散式):
优点:各自开发独立,不容易相互影响。
缺点:管理复杂,merge的时候很麻烦。本节关于目录机构中两种SVN开发模式介绍完毕,请关注本节其他相关报道。

【编辑推荐】

  1. 标准SVN开发目录结构模式详解
  2. SVN库的目录结构详解
  3. 常用SVN目录结构使用的两大方法详解
  4. 如何实现SVN仓库目录规范化管理?
  5. 经验总结:TortoiseSVN客户端使用心得
责任编辑:佚名 来源: csdn.net
相关推荐

2010-05-26 18:20:59

SVN库

2010-06-02 15:29:06

SVN版本控制

2010-06-02 10:36:41

SVN开发

2022-02-21 08:18:38

option编程模式

2010-05-28 08:52:18

SVN项目

2009-06-29 18:11:40

JSP设计模式

2009-07-06 17:46:41

JSP网站

2010-06-01 18:35:54

删除SVN版本信息

2010-01-05 17:23:51

JSON建构

2013-05-03 10:26:14

iOS开发游戏开发

2010-08-26 15:15:18

DB2备份

2009-07-02 15:50:36

JSP体系结构

2011-02-23 12:49:31

KonquerorEmbedded

2011-08-09 13:50:01

iPhone动画UIView

2010-02-04 13:15:40

以太网交换

2012-11-29 10:45:31

2021-10-09 09:15:01

Windows 11安全模式系统

2010-05-27 11:12:10

SVN目录结构

2010-05-28 10:35:46

SVN搭建测试服务器

2010-06-02 17:16:16

自动运行SVN
点赞
收藏

51CTO技术栈公众号