您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试管理 > 配置管理 > 正文

软件配置管理中的SVN

发表于:2017-08-07 作者:wzjhoutai 来源:

  一.简单介绍
  1、什么是软件配置管理
  软件配置管理是指通过运行版本号控制、变更控制的规程。以及使用合适的配置管理软件。来保证全部配置项的完整性和可跟踪性。
  配置管理是对工作成果的一种有效保护。
  2、为什么须要配置管理
  假设没有软件配置管理,最大的麻烦是工作成果无法回溯。随着工作的进展新的程序覆盖了老的程序,当突然发现新程序有问题而老程序正确时怎么办?那仅仅能重写老的程序来覆盖新的程序。过一段时间又发现原来的老程序有问题,而解决方法在原来的新程序中……您是不是快要发疯了。
  为了避免成果被覆盖。包含我自己在内的非常多人早期採用手工管理版本号的方式。比如当一个新版本号产生时用当时的日期来命名目录大发生然后再复制一下以后的改动在复制的目录内进行。这样上一个版本号就被保存下来了,周而复始不同的版本号不会被覆盖。
  尽管这样的方式能够从某种程度上解决版本号的回溯问题,但他存在的缺点是显而易见的:第一点假设保留结果过于频繁,将会导致产生大量的有着反复内容的目录。庞大的物理空间,管理起来非常麻烦;假设保留旧版本号的时间间隔太长,可能产生某些实用的老程序无法回溯。拿我近期开发的一个程序来说程序仅仅有几十兆,经过一年的开发各版本号累计到1G。第二easy产生版本号的混乱,假设是团队开发软件,这样的简单的方法更难解决这个问题的本质了。
  3、人的问题
  配置管理的方法是成熟的,并且对应的软件工具也是成熟的,基本上不存在看不懂、不会用的问题。
  配置管理的运行效果怎样。全然是事在人为。
  妨碍配置管理的主要问题是人们嫌麻烦和侥幸心理作怪。
  在没出乱子的情况下,运行版本号控制看起来有些麻烦。每次改动工作的时候总是要GetLatestVersion。接着CheckOut。改动完后又要CheckIn,多做了三步。
  事实上这三步加起来也就十几秒钟。并且不费脑子,根本没有加入多少麻烦。不过个人感觉不爽而以。
  然而不运行版本号控制的话。万一发生工作成果被覆盖或丢失等问题,麻烦就大了。
  4、软件配置管理规范
  软件研发和管理过程中会产生许很多多的工作成果,比如文档、程序和数据等,他们都应当妥善地保管起来。以便查阅和改动。
  假设把全部文件一股脑的塞进计算机里,那么使用起来非常麻烦。
  凡是纳入配置管理范畴的工作成果统称为配置项配置项主要有两大类:一类是属于产品的组成部分,比如需求文档、设计文档、源码、測试用例等等;还有一类是在管理过程中产生的文档。比如各种计划、报告等。每一个配置项的主要属性有名称、标识符、文件状态、版本号、作者、日期等。配置项及历史纪录反映了软件的演化过程。
  版本号控制的目的是依照一定的规则保存配置项的全部版本号,避免发生版本号丢失或混乱等现象。配置项的状态有三种:“草稿”、“正式公布”和“正在改动”
  配置项的版本与配置项的状态紧密相关:
  (1)处于“草稿”状态的配置项的版本格式为:0.YZ
  (2)处于“正式公布”状态的配置项的版本格式为:X.Y。
  一般仅仅是Y值递增,当Y值到达一定的范围时X值才发生变化。
  (3)处于“正在改动”状态的配置项的版本格式为:X.YZ。一般仅仅增大Z值,当配置项改动完成。状态又一次变成“正式公布”时,将Z值变为0,添加X.Y值。
        二.初识SVN
  1.在进行TortoiseSvn(管理员client)+AnkhSvn(VS2008插件)+VisualSvnServer(版本号控制server)进行源码版本号控制前,有必要先了解下Subversion(Svn)。
  Svn(Subversion)是近年来崛起的版本号管理工具,是CVS的接班人。
  眼下。绝大多数开源软件都使用Svn作为代码版本号管理软件。
  Svnclient
  Subversion的client有两类,一类是webSvn等基于web的,一种是以TortoiseSvn为代表的client软件。前者须要webserver的支持,后者须要用户在本地安装client。
  Svnserver
  Subversion支持linux和windows,很多其它是安装在linux下。
  Svnserver有2种执行方式:独立server和借助apache。
  2种方式各有利弊。
  Svn存储版本号数据也有2种方式:BDB和FSFS。由于BDB方式在server中断时。有可能锁住数据,所以还是FSFS方式更安全一点。
  VisualSvn、VisualSvnServer
  VisualSvn是Svn的client,和VisualStudio集成在一起。可是是商业软件,收费;VisualSvnServer是基于Windows平台上的Subversionserver。它是免费的。他详细包含了Subversion、Apache和一个对应的管理界面。所以推荐使用免费的TortoiseSvnclient以及VS插件AnkhSvn。
  为什么要用Svn,而不用Vss?
  同样点:都能集成在VS2008下进行源码管理,都能全然内网开发。
  不同点:Vss是基于“锁定--编辑—解锁”模式的,这个模式有一个弊端。就是当其它人在编辑相关单元文件的时候,此单元文件处于锁定状态,其它人假设想编辑这个单元文件的话。仅仅能处于等待状态。
  后来在持续集成中我使用的Subversion替代Vss,Subversion是基于“改动—冲突—合并”的一个模式,也就是说多个人能够同一时候签出一个单元文件,编辑然后提交,假设多个人都改动了同一文件的某一行的话。就会发生冲突。手工解决冲突。
  Internet开发,和离线开发,VisualSvn会比Vss更胜一筹。
  为什么要用VisualSvnServer,而不直接用Subversion?
  由于假设直接使用Subversion,那么在Windows系统上,要想让它随系统启动,就要封装SvnServer为windwsservice,还要通过改动配置文件来控制用户权限,另外假设要想以Web方式【http协议】訪问,一般还要安装配置Apache。假设是新手,岂不是非常头痛?而VisualSvnServe集成了Subversion和Apache,省去了以上全部的麻烦。安装的时候SvnServer已经封装为windwsservice,Apacheserver的配置也仅仅是在图像界面上,指定认证方式、訪问port等简单操作;另外,用户权限的管理也是通过图像界面来配置。
  VisualSvnServer是全然开源和免费的,当然它的官方client(VisualSvn)并不免费,只是没关系,VisualSvnServeclient有太多的免费版本号供我们选择,TortoiseSvn就是一个不错的选择。
  2.TortoiseSvn是Subversion版本号控制系统的一个免费开源client。能够超越时间的管理文件和文件夹。文件保存在中央版本号库,除了能记住文件和文件夹的每次改动以外,版本号库很像普通的文件server。
  你能够将文件恢复到过去的版本号,而且能够通过检查历史知道数据做了哪些改动。谁做的改动。
  这就是为什么很多人将Subversion和版本号控制系统看作一种“时间机器”。
  3.AnkhSVN是一款在VS中管理Subversion的插件,您能够在VS中轻松的提交、更新、加入文件,而不用在命令行或资源管理器中提交。并且该插件属于开源项目。
  三.学习小结
  经过对于软件管理的学习。从总体上认识了软件管理的必要性和重要性,非常大程度上攻克了设计过程中的版本号回溯问题,非常是为设计人员考虑。这也是大家学习的必要性。
  有好的管理方法,使得我们的项目设计过程更为灵活和多元化。
  而相对于SVN的学习就比較的抽象了,仅仅是装上了软件和看看了教学的视频,还未进行使用,接下来的时间里,从实践中去认识SVN吧!