项目管理方法,svn资料备忘

2019-11-08 06:14栏目:网络技术
TAG:

Subversion有一个很正式的目录结构,是那样的。
比方项目是proj,svn地址为svn://proj/,那么正式的svn布局是

原地址:

svn://proj/|+-trunk+-branches+-tags
那是三个正规的布局,trunk为主开辟目录,branches为分支开拓目录,tags为tag存档目录(分裂意改革卡塔尔国。不过实际这一个目录应当怎样选用,svn并未明显的正式,越来越多的要么顾客自身的习贯。

Subversion(SVN) 是多少个本子管理软件也许服务器,能够提供托管“源代码或文档” 并能够异乡同步文件更新,记录版本有别,分晰前后相继文件差距的地方的前后相继。

对此那多少个开荒目录,平日的使用方法有二种。小编越多的是从软件出品的角度出发(例如freebsd卡塔 尔(英语:State of Qatar),因为互连网的支付形式是全然不一致等的。 1.第少年老成种艺术,使用trunk作为第风姿浪漫的开销目录
通常的,大家的享有的花销都是依照trunk举办支付,当四个本子/release开垦告后生可畏段落(开拓、测验、文书档案、制作安装程序、打包等卡塔 尔(阿拉伯语:قطر‎截止后,代码处 于冻结状态(人为规定,能够因而hook来拓宽保管卡塔尔国。那时候应当依附当前冻结的代码库,打tag。当下叁个本子/阶段的成本职分早先,继续在trunk进行开采。
那儿,若是开采了上三个已发行版本(Released Version卡塔 尔(阿拉伯语:قطر‎有豆蔻年华对bug,或许有些异常的红急的效能必要,而正在开采的版本(Developing Version卡塔尔不能满足时间供给,那时就供给在上叁个版本上实行改造了。应该凭仗发行版对应的tag,做相应的分段(branch卡塔 尔(英语:State of Qatar)进行支付。
比方,刚刚发表1.0,正在开拓2.0,那时候要在1.0的底子上扩充bug修改。
据守时间的依次

Subversion有二个很正规的目录结构,是如此的。
比如项目是proj,svn地址为svn://proj/,那么专门的工作的svn布局是

1.0支付实现,代码冻结
依据已经冷冻的trunk,为release1.0打tag
此刻的目录结构为
svn://proj/
+trunk/ (freeze)
+branches/
+tags/
+tag_release_1.0 (copy from trunk)
2.0上马开采,trunk当时为2.0的开拓版
开掘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)
在1.0 bugfix branch进行1.0 bugfix开发,在trunk进行2.0开发
在1.0 bugfix 达成现在,基于dev_1.0_bugfix的branch做release等
听新闻说要求选择性的把dev_1.0_bugfix这一个分支merge回trunk(曾几何时实行那步操作,要基于具体情状卡塔尔
那是风姿洒脱种很正统的开辟情势,超多的商铺都是接受这种情势张开开拓的。trunk永世是支付的紧要目录。

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

 

那是三个标准的布局,trunk为主开辟目录,branches为分支开拓目录,tags为tag存档目录(不允许改进卡塔 尔(英语:State of Qatar)。不过现实那多少个目录应该怎么利用,svn并未理解的正经,更加多的要么客商自身的习于旧贯。

多人在Trunk同一条道路上付出,达到三个里程碑后归档到Tag上,Trunk的费用持续开展,假设有题目再从Tag上树立分支Branch举办基于有些Tag的版本开拓。

对于那多少个开荒目录,通常的行使办法有二种。笔者越多的是从软件出品的角度出发(譬如freebsd卡塔尔,因为网络的付出情势是截然超级小器晚成致的。

2.次之种办法,在每一个release的branch中展开分级的支付,trunk只做表露使用。
这种支付格局当中,trunk是不承当具体耗费任务的,二个版本/阶段的支出职务在初阶的时候,依据现已release的版本做新的开销分支,而且依据那么些分支举办支付。依旧举上边的例子,那中间的时序关系是:

第风度翩翩种艺术,使用trunk作为非常重要的费用目录。
貌似的,我们的保有的付出都以基于trunk举行支付,当三个版本/release开垦告黄金年代段落(开拓、测量检验、文书档案、制作安装程序、打包等卡塔 尔(阿拉伯语:قطر‎停止后,代码 处于冻结状态(人为规定,可以通过hook来开展管理卡塔 尔(阿拉伯语:قطر‎。那时理应依照当前冻结的代码库,打tag。当下一个版本/阶段的支付职分发轫,继续在trunk 实行开辟。
此时,固然发掘了上多个已发行版本(Released Version卡塔 尔(阿拉伯语:قطر‎有局地bug,或然局地很急迫的作用要求,而正在开荒的版本(Developing Version卡塔尔无法满足时间必要,这时就须求在上三个本子上展开改正了。应该依照发行版对应的tag,做相应的分支(branch卡塔 尔(英语:State of Qatar)实行开垦。
诸如,刚刚发布1.0,正在开拓2.0,当时要在1.0的基础上进展bug修正。
遵照时间的逐少年老成

1.0开发,做dev1.0的branch
这时的目录结构
svn://proj/
+trunk/ (不辜负责开荒职分 )
+branches/
+dev_1.0 (copy from trunk)
+tags/
1.0耗费落成,merge dev1.0到trunk
那时候的目录结构
svn://proj/
+trunk/ (merge from branch dev_1.0)
+branches/
+dev_1.0 (开辟职责达成,freeze)
+tags/
根据trunk做1.0的tag
这儿的目录结构
svn://proj/
+trunk/ (merge from branch dev_1.0)
+branches/
+dev_1.0 (开辟职务完毕,freeze)
+tags/
+tag_release_1.0 (copy from trunk)
1.0开发,做dev2.0分支
这时候的目录结构
svn://proj/
+trunk/
+branches/
+dev_1.0 (开拓职务完毕,freeze)
+dev_2.0 (进行2.0开发)
+tags/
+tag_release_1.0 (copy from trunk)
1.0有bug,直接在dev1.0的支行上修复

  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永久是开拓的根本目录。

Linux中Subversion配置实例 http://www.linuxidc.com/Linux/2012-02/53109.htm

其次种格局,在每三个release的branch中张开分级的支付,trunk只做透露使用。
这种支付情势个中,trunk是不辜负责具体开辟任务的,三个本子/阶段的支付职务在始发的时候,根据现已release的版本做新的开采分支,並且根据那几个分支举行付出。照旧举上面包车型地铁例证,那此中的时序关系是。

CentOS 6.2 SVN搭建 (YUM安装) http://www.linuxidc.com/Linux/2013-10/91903.htm

  1. 1.0开发,做dev1.0的branch
    那会儿的目录结构
    svn://proj/
                 +trunk/  (不担当开荒职分 )
                 +branches/
                               +dev_1.0 (copy from trunk)
                 +tags/
  2. 1.0开辟形成,merge dev1.0到trunk
    这个时候的目录结构
    svn://proj/
                 +trunk/  (merge from branch dev_1.0)
                 +branches/
                               +dev_1.0 (开拓职务达成,freeze)
                 +tags/
  3. 根据trunk做1.0的tag
    此刻的目录结构
    svn://proj/
                 +trunk/  (merge from branch dev_1.0)
                 +branches/
                               +dev_1.0 (开辟职责实现,freeze)
                 +tags/
                         +tag_release_1.0 (copy from trunk)
  4. 1.0开发,做dev2.0分支
    这个时候的目录结构
    svn://proj/
                 +trunk/ 
                 +branches/
                               +dev_1.0 (开采职责完成,freeze)
                               +dev_2.0 (进行2.0开发)
                 +tags/
                         +tag_release_1.0 (copy from trunk)
  5. 1.0有bug,直接在dev1.0的分段上修复
    那个时候的目录结构
    svn://proj/
                 +trunk/ 
                 +branches/
                               +dev_1.0 (1.0bugfix)
                               +dev_2.0 (进行2.0开发)
                 +tags/
                         +tag_release_1.0 (copy from trunk)
  6. 选用性的进展代码merge

Apache+SVN搭建SVN服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

那实质上是风度翩翩种分散式的花费,当种种部分相对独立部分(作用性的卡塔 尔(英语:State of Qatar),能够开五个dev的道岔实行开荒,那样各人/组都不会相互功用。比如dev_2.0_search和dev_2.0_cache等。不过这么merge起来便是三个非常惨重的事体。

Windows下SVN服务器搭建和动用 + 顾客端重新复苏设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

那边要小心一下的,第六步举行采取性的merge,是足以当2.0支出截止后合营把dev_1.0(bugfix用)和dev_2.0(新本子开采取卡塔 尔(英语:State of Qatar)merge回trunk。或然先把dev_1.0 merge到dev_2.0,进行测验等今后再merge回trunk。
那三种格局有利有弊,第一种方法是足以获得三个相比纯的dev_2.0的支出分支,而第两种方准则越来越的保障,因为要测量试验嘛。

Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN数据 http://www.linuxidc.com/Linux/2013-05/84695.htm

以上呢,正是自个儿说的三种开拓情势了,具体哪一种好,并未下结论。这里大概的说一下个其他利弊
率先种开垦情势(trunk实行重大费用,集英式卡塔 尔(英语:State of Qatar):
优点:管理简便易行
缺欠:当开辟的模块超级多,开辟人数/小集体比比较多的时候,相当轻松产生冲突而影响对方的付出。因为具备的转移都有一点都不小概率触碰对方的改观
其次重开荒情势(分支进行主要花销,分散式卡塔尔国:
优点:各自开拓独立,不轻巧相互影响。
症结:管理复杂,merge的时候很麻烦,轻巧死人。

Ubuntu Server搭建svn服务以至搬迁方法 http://www.linuxidc.com/Linux/2013-05/84693.htm

实在,这里并未有必然之规,越多的时候是三种方式结合使用。小编个人来讲是利用第生龙活虎种方法为主,在少数意况下利用第三种办法。

信任网盘搭建SVN服务器 http://www.linuxidc.com/Linux/2013-10/91271.htm

图片 1

版权声明:本文由澳门新葡亰平台游戏发布于网络技术,转载请注明出处:项目管理方法,svn资料备忘