zoukankan      html  css  js  c++  java
  • 常用SVN目录结构使用的两大方法详解

      本文和大家一起学习一下常用SVN目录结构使用方法中的第二种方法,在这里和大家分享一下,希望通过本文的学习大家对SVN目录结构的使用有清晰的认识。

      上节我们介绍了常用SVN目录结构中针对实例目录使用的第一种方法,本节我们讲解一下第二种方法,看完本文你肯定有不少收获,希望本文能教会你更多东西,欢迎打击一起来学习SVN目录结构的使用方法。

      第二种方法,在每一个release的branch中进行各自的开发,trunk只做发布使用。
      这种开发模式当中,trunk是不承担具体开发任务的,一个版本/阶段的开发任务在开始的时候,根据已经release的版本做新的开发分支,并且基于这个分支进行开发。还是举上面的例子,这里面的时序关系是。
      1.0开发,做dev1.0的branch
      此时的SVN目录结构
      svn://proj/
      +trunk/(不担负开发任务)
      +branches/
      +dev_1.0(copyfromtrunk)
      +tags/
      1.0开发完成,mergedev1.0到trunk
      此时的SVN目录结构
      svn://proj/
      +trunk/(mergefrombranchdev_1.0)
      +branches/
      +dev_1.0(开发任务结束,freeze)
      +tags/
      根据trunk做1.0的tag
      此时的SVN目录结构
      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目录结构
      svn://proj/
      +trunk/
      +branches/
      +dev_1.0(1.0bugfix)
      +dev_2.0(进行2.0开发)
      +tags/
      +tag_release_1.0(copyfromtrunk)
      选择性的进行代码merge
      这其实是一种分散式的开发,当各个部分相对独立一些(功能性的),可以开多个dev的分支进行开发,这样各人/组都不会相互影响。比如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进行主要开发,集中式):
      优点:管理简单
      缺点:当开发的模块比较多,开发人数/小团队比较多的时候,很容易产生冲突而影响对方的开发。因为所有的改动都有可能触碰对方的改动
      第二种SVN目录结构开发模式(分支进行主要开发,分散式):
      优点:各自开发独立,不容易相互影响。
      缺点:管理复杂,merge的时候很麻烦,容易死人。
      其实,这里并没有一定之规,更多的时候是两种模式结合使用。我个人来说是采用第一种方式为主,在某些情况下使用第二种方法。本节关于SVN目录结构的使用方法讲解完毕,请关注本节其他相关报道。

  • 相关阅读:
    49. 字母异位词分组
    73. 矩阵置零
    Razor语法问题(foreach里面嵌套if)
    多线程问题
    Get json formatted string from web by sending HttpWebRequest and then deserialize it to get needed data
    How to execute tons of tasks parallelly with TPL method?
    How to sort the dictionary by the value field
    How to customize the console applicaton
    What is the difference for delete/truncate/drop
    How to call C/C++ sytle function from C# solution?
  • 原文地址:https://www.cnblogs.com/HeroBeast/p/1814824.html
Copyright © 2011-2022 走看看