版本管理与版本控制

最近对组成成员进行了一次简单的版本管理与版本控制的分享,其实这些东西都是开发中必不可少的,只是以前的工作重点并没有放在这个方面.废话少说,我们先了解下什么是版本管理与版本控制.

版本管理

版本管理表示对项目整体版本的演变过程管理,最简单的如v1.0变更至v1.1,从snapshot变更至release.
一般情况下版本发布应该具备以下条件:

  1. 配置项没有任何其它版本依赖
  2. 所有的代码已经提交版本控制系统中
  3. 自动化测试全部通过


版本控制中,版本号当然是不可或缺的重要元素,那么如何进行版本号的定义呢?要知道这点,首先我们需要了解版本号的构成.
一般情况下版本号由以下内容组成:
【主版本】【次版本】【增量版本】【里程碑版本】,例如 1.2.3-beta4,这表示当前版本是主版本1,次版本2,增量版本3,里程碑版本是beta4,那么这些版本表示什么意义呢?

  • 主版本表示项目的重大架构变更
  • 次版本表示大范围的功能与特性增加
  • 增量版本表示重大bug的修正
  • 里程碑版本表示阶段性版本变更

了解完这些,我们再看看里程碑版本如何定义:

  • Alpha版表示该项目在此阶段主要是以实现软件功能为主,通常只在小部分用户或者开发者之间流通或者内部交流,一般而言,该版本不确定因素较多,仍需要继续修改.
  • Beta版表示项目相对于Alpha版已有了很大的改进,基本没有严重的bug,但还是存在着一些缺陷,需要经过多次测试来进一步消除.
  • RC版表示项目已经相当成熟了,基本上不存在导致错误的bug,与正式版相差无几.
  • Release版表示项目的最终版本,此版本可交付用户使用.

版本控制

版本控制表示借助版本控制工具(cvs,svn,git)追踪代码的每一个变更,而为了使版本控制更加清晰,我们常常会用到主干(trunk),分支(branch),标记(tags),这些名词到底在版本控制中扮演什么角色呢?

  • 主干
  • 主干表示项目开发主体,它是整个版本控制中最活跃的部分.

  • 分支
  • 分支表示从主干上分离出来的代码拷贝,基本上是用于不影响主干代码的前提下进行功能更新,bug修正,实验性开发等,如果达到预期目标再合并至主干上.

  • 标记
  • 标签表示主干或者分支上某个点的状态,以代表项目达到某个稳定状态,通常情况下标签与版本管理中的版本号对应.

当然,这种版本控制不是绝对标准,例如有部分开发团队实行一种更为严格的版本控制机制,即每人维护一个分支,但是能否提交至主干上则由TL与QA说的算,这样也避免了trunk成为垃圾场,而使用版本控制工具需要养成好的习惯,例如每天来公司第一件事就是更新代码,而下班前就是提交代码与测试用例,这些都可以提高团队合作效率.

发表评论(沙发空缺中,还不快抢~)

设置头像

*

:wink: :twisted: :smile: :sleep: :shock: :sad: :roll: :razz: :oops: :neutral: :mad: :grin: :evil: :eek: :cry: :cool: