VSS 软件配置管理 版本控制第1/2页

2、为什么需要配置管理
  如果没有软件配置管理,最大的麻烦是工作成果无法回溯。随着工作的进展新的程序覆盖了老的程序,当突然发现新程序有问题而老程序正确时怎么办?那只能重写老的程序来覆盖新的程序。过一段时间又发现原来的老程序有问题,而解决方法在原来的新程序中……您是不是快要发疯了。
  为了避免成果被覆盖,包括我自己在内的很多人早期采用手工管理版本的方式,例如当一个新版本产生时用当时的日期来命名文件夹,然后再复制一下以后的修改在复制的文件夹内进行,这样上一个版本就被保存下来了,周而复始不同的版本不会被覆盖。虽然这种方式可以从某种程度上解决版本的回溯问题,但他存在的缺点是显而易见的:第一点如果保留结果过于频繁,将会导致产生大量的有着重复内容的文件夹,庞大的物理空间,管理起来很麻烦;如果保留旧版本的时间间隔太长,可能产生某些有用的老程序无法回溯。拿我最近开发的一个程序来说程序只有几十兆,经过一年的开发各版本累计到1G。第二容易产生版本的混乱,如果是团队开发软件,这种简单的方法更难解决问题的本质了。
3、人的问题
  配置管理的方法是成熟的,而且相应的软件工具也是成熟的,基本上不存在看不懂、不会用的问题。配置管理的执行效果如何,完全是事在人为。妨碍配置管理的主要问题是人们嫌麻烦和侥幸心理作怪。
  在没出乱子的情况下,执行版本控制看起来有些麻烦。每次修改工作的时候总是要Get Latest Version,接着Check Out,修改完后又要Check In,多做了三步。其实这三步加起来也就十几秒钟,而且不费脑子,根本没有添加多少麻烦,仅仅是个人感觉不爽而以。然而不执行版本控制的话,万一发生工作成果被覆盖或丢失等问题,麻烦就大了。
4、软件配置管理规范
  软件研发和管理过程中会产生许许多多的工作成果,例如文档、程序和数据等,他们都应当妥善地保管起来,以便查阅和修改。如果把所有文件一股脑的塞进计算机里,那么使用起来很麻烦。
  凡是纳入配置管理范畴的工作成果统称为配置项配置项主要有两大类:一类是属于产品的组成部分,例如需求文档、设计文档、源代码、测试用例等等;另一类是在管理过程中产生的文档,例如各种计划、报告等。
  每个配置项的主要属性有名称、标识符、文件状态、版本、作者、日期等。配置项及历史纪录反映了软件的演化过程。
  基线由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。基线中的配置项被冻结后,不能在被任何人随意更改。基线通常对应于开发过程中的里程碑。通常将交付该客户的基线称为一个Release,为内部开发用的基线称为一个Build。
  版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混乱等现象。配置项的状态有三种:“草稿”、“正式发布”和“正在修改”
  配置项的版本号与配置项的状态紧密相关:
  (1) 处于“草稿”状态的配置项的版本号格式为:0.YZ
  (2) 处于“正式发布”状态的配置项的版本号格式为:X.Y。
  一般只是Y值递增,当Y值到达一定的范围时X值才发生变化。
  (3) 处于“正在修改”状态的配置项的版本号格式为:X.YZ。
  一般只增大Z值,当配置项修改完毕,状态重新变成“正式发布”时,将Z值变为0,增加X.Y值。
5、常用的配置管理软件
  A)、自从20世纪80年代后期研制并完善了“增量存储算法”后配置管理工具的春天便开始了,目前国内常用的配置管理工具大概有SourceSafe、CVS和ClearCase。
  SourceSafe是Micrsoft公司推出的一款支持团队协同开发的配置管理工具,是Visual Studio的套件之一。因为其短小精悍,又继承了微软集成销售的一贯作风用户可以相对于免费的价格得到,用户量绝对是第一位。
SourceSafe简单易用人们在使用配置管理工具时候,80%的时间只是用Add,Check in,Check out等区区几个功能。

  SourceSafe 的主要局限性:只支持WINDOWS不支持异构环境下的配置管理;对INTERNET支持不够完善。

  B)、在详细介绍SourceSafe首先简单概述一下它的基本机制。SourceSafe是使用服务器、本地机的概念来进行操作的,它认为所有需要操作的文件都存在服务器版本文件和本地机版本文件,无论您的SourceSafe的架构是服务器客户机形式还是个人单机版形式,它的机制都是这样。用户所用的修改都是在本地机上完成的,修改完成后再上传服务器。单机版也是这样操作。我们一定要明确两个版本后再来分析。

  服务器版本文件是一个绝对受配置管理软件限制的文件,用户只能通过SourceSafe的规定的权限和操作方法修改它,因为它并不是您一个人的,它是大家的。本地文件是一个基本不受限制的文件,您可以象操作本地文件一样操作它。

  SourceSafe由Visual SourceSafe 6.0 Admin、Microsoft Visual SourceSafe 6.0、Analyze VSS DB、Analyze & Fix VSS DB四部分组成。

  C)、Analyze VSS DB、Analyze & Fix VSS DB两个工具不是很常用,前者用于检查SourceSafe数据库文件的完整性,后者主要是修正SourceSafe数据库文件存在的错误。

  D)、Visual SourceSafe 6.0 Admin的功能类似于win2k的用户管理器,软件配置管理人员用它来分配用户和设定相应的权限。

  管理员的管理操作一般都集中在Visual SourceSafe 6.0 Admin中,系统中只有一个系统管理员Admin可以登陆到此程序中进行管理工作,一般刚刚安装的系统中此用户的密码缺省为空。而且系统为Admin这个用户保留的一切权力,不可更改。

  数据库的创建这个操作必须在服务器上执行,因为通过客户端创建数据库的操作,只是在客户端的机器上创建的数据库,这个数据库往往只能单机使用。同时要必须注意,由于VSS是通过WINDOWS的网络共享来完成服务器端受控版本文件的共享,因此VSS服务端的数据库必须建立在服务器的一个完全共享的目录之中。否则,客户端将无法获得数据库中的文件。

  数据库的备份与恢复,备份数据库或者其中的一个项目,点击tools-archive projects…菜单弹出对话框,根据提示一步步进行备份,最后会形成一个扩展名为*.ssa的备份档案文件。

  如果要从档案文件中恢复VSS数据库中的文件数据,点击tools-restore projects菜单根据提示一步步完成数据恢复工作。其中,在恢复过程中,可以选择恢复为原有工程,也可改变恢复成其他工程目录。

  E)、Microsoft Visual SourceSafe 6.0是SourceSafe的主要使用平台,样子象Windows的文件管理器,它所显示的路经是以‘$'符号为根节点的相对路径,在这里介绍一下此平台的主要使用方法。

  (1)添加项目

  您可以在根节点下添加项目,方法是:File—Add File出现Add File对话框后选中相关文件,按Add即可。

  你可以继续通过File-Create Project在根目录下创建一个项目后在此项目节点下添加文件。

  添加完文件后,您所添加源文件的属性自动变为只读,并在所添加文件的文件夹下生成一个vssver文件 ,以后对文件的操作基本与原文件没有关系了。

  (2)浏览Source Safe Server中的文件

  在Visual SourceSafe Explore中双击要打开的文件,会弹出一个对话框,您直接点击OK即可。这时SourceSafe Explore会将文件拷贝一份到本地机的临时文件夹中(临时文件夹路径在tools-options-general下设置),因原文件前面提到已经变了只读,所以临时文件也是只读属性,而且文件名会通过系统自动更改。

  (3)设置工作文件夹

  SourceSafe 的文件夹需要在本地计算机上指定一个“working folder”。当“check out”时,相应文件会下载到这个本地工作文件夹中。我们在本地的文件中修改文件,然后把修改后的文件“check in”回服务器的source safe中。

我们可以利用“set working folder”这条命令来建立source safe的文件夹和本地“working folder”的对应关系。方法在source safe的文件目录树中选中要建立对应关系的文件夹-右单击-选择“set working folder”即可。

  (4)、下载最新版本文件到本地机

  “get latest version”命令可以将一个文件、一组文件或整个文件夹的最新版本从source safe中拷贝到本地的计算机中,并用只读的形式保存起来。方法如下:

  在左侧的文件树中选择相应的文件夹右单击后,选择“get latest version”

  这时会弹出一个对话框,它包括三个复选框:三个复选框全空时,只将source safe文件夹根目录下的文件拷贝到本地计算机,如同DOS中的COPY命令;recursive选项选中时,会将source safe文件夹下的所有文件夹及文件都拷贝到本地计算机,如同DOS中的DISKCOPY,make writable选中,拷贝到本地的文件是可写的。

  如果我们单击“advance”按钮,就会出现更多的选择项。在“set file”中的四个选项第一如下:current为拷贝操作发生时的当前时间;Modification为文件最近一次修改的时间;check in为文件最后一次check in是的时间;default同current.

  在replace writable中的四个选项作用是,当本地机有一个和要下载的文件同名时,且本地机的文件是可写的同名文件时,设置系统如何执行拷贝:ask系统提示是否覆盖本地的同名文件;replace自动覆盖本地的同名文件;skip不覆盖本地的同名文件;merge将两个文件合并。

  一定要养成先Get Latest Version的习惯,否则如果别人更新了代码,VC会提示你存在版本差异并问您是否覆盖、整合、保留等,如果选错了就会把别人的代码Cancel掉,所以一定小心。

  (5)下载文件到本地操作

  当我们要修改一个文件时,首先要把文件从source safe中复制到“working folder”中,并且以可写的形式保存,这一系列动作的命令就是check out。具体使用方法如下:选择要下载到本地机的文件,右单击后选择check out,这时会弹出一个对话框。缺省的状态下“don't get local copy”这个选项是不选的,他的意义是这样的:如果不选保持缺省状态,当本地的同名文件是只读时,则系统首先用source safe的文件更新本地的文件,本地的文件变为可写。当本地的文件是可写时,则会出现另一提示框其中的选项leave this file:本地文件保留当前状态,source safe中的文件也保留当前状态,这样有可能两个文件不一致。选项Replace your local file with this version from source safe:用source safe中的文件更新本地的文件。如果您选择don't get local copy选项:则不把source safe的文件拷贝到本地。

  文件check成功后,您可以看到文件上有红色标记,这时您的本地文件是可写的,您就可以修改文件了。上面的选项也许让您心乱,为了操作更简便,我们推荐一种check out 方法:

  当本地的文件比source safe中的文件内容新时,选择don't get local copy选项。然后check in使本地机与服务器内容同步;

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • VSS 软件配置管理 版本控制第1/2页

    2.为什么需要配置管理 如果没有软件配置管理,最大的麻烦是工作成果无法回溯.随着工作的进展新的程序覆盖了老的程序,当突然发现新程序有问题而老程序正确时怎么办?那只能重写老的程序来覆盖新的程序.过一段时间又发现原来的老程序有问题,而解决方法在原来的新程序中--您是不是快要发疯了. 为了避免成果被覆盖,包括我自己在内的很多人早期采用手工管理版本的方式,例如当一个新版本产生时用当时的日期来命名文件夹,然后再复制一下以后的修改在复制的文件夹内进行,这样上一个版本就被保存下来了,周而复始不同的版本不会被覆

  • Java基础篇之分布式版本控制工具Git

    目录 版本控制 版本控制分类 1.本地版本控制 2.集中版本控制SVN 3.分布式版本控制 Git和SVN的区别 Git的历史: 常用的Linux命令 Git配置 Git基本理论(重要) Git项目搭建 本地仓库搭建 克隆远程仓库 Git文件操作 查看文件状态 忽略文件 使用码云 Git分支 版本控制 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件.目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术. 实现跨区域多人协同开发

  • 版本管理工具Rational ClearCase的介绍

    Rational ClearCase是软件配置管理SCM工具的一种,它可以用来对代码或者其他软件开发资产进行版本控制.对于超过上百或者上千团队开发者的大型项目据说也有很好的支持,同时对于大的二进制文件,文件个数很多,整体仓库容量很大的情况也能进行支持,另外对于目录也能进行版本的控制. 前世今生 基本信息 术语 学习ClearCase可能要学习一下它的一些术语,比如ClearCase支持两种模型: UCM(Unified Change Management)和Base ClearCase两种模型.

  • 一个软件测试工程师的加班经历

    海交通大学计算机学士,企业管理硕士.现任职于英特尔中国软件实验室,从事嵌入式Linux相关的开发工作.PMT Community发起人之一,PMT是一个由软件行业专业人士自发组成的非营利性团体,致力于软件技术和管理的研究与实践.      写下这段流水帐似的周末加班经历,并不是因为无聊.只是老婆要我交待,一个"臭"(这个字眼只有很少机会享用)做软件的,老是这么晚回来,究竟在外面做些什么.如果哪天你也被要求写这样的材料,你可以参考:除了这个作用以外,或许,不同的人会从中看到不同的东西吧.

  • JetBrains IntelliJ IDEA 2020安装与使用教程详解

    对于JetBrains IntelliJ IDEA 2020的认识 IntelliJ IDEA 2020是一款JAVA编程软件,捷克IntelliJ公司研发推出.该软件提供了一个非常强大的JAVA集成开发环境,不仅添加了对Records的完整代码洞察支持,JDK自动下载构建,还能够让开发者更快速的生成构造函数和组件,对代码进行分析检查等功能,大大提高了开发者的代码编写效率,减轻了对代码查漏补缺的压力.该软件提供一站式服务,包括软件开发的环境.开发的过程.开发的维护和管理等等,能完美契合开发者的需

  • IntelliJ IDEA 2020安装使用教程详解

    对于JetBrains IntelliJ IDEA 2020的认识 IntelliJ IDEA 2020是一款JAVA编程软件,捷克IntelliJ公司研发推出.该软件提供了一个非常强大的JAVA集成开发环境,不仅添加了对Records的完整代码洞察支持,JDK自动下载构建,还能够让开发者更快速的生成构造函数和组件,对代码进行分析检查等功能,大大提高了开发者的代码编写效率,减轻了对代码查漏补缺的压力.该软件提供一站式服务,包括软件开发的环境.开发的过程.开发的维护和管理等等,能完美契合开发者的需

  • Maven环境安装配置和新建项目介绍

    目录 1 Maven是什么? 2,环境搭建 2.1 安装JDK 2.2 下载并安装maven 2.3 配置环境变量 2.4 验证maven是否已经安装 2.5 maven的本地仓库的配置 3 eclipse中的maven插件配置 3.1 下载安装maven插件 3.2 配置环境 4 创建maven项目 5 maven web项目的结构 总结: 1 Maven是什么? Apache Maven 是一种用作软件项目管理和理解工具.它基于项目对象模型(POM)的概念, 可以管理一个项目的构建.报告以及

  • 好人共享的一个万能Ghost系统制作教程附相关软件下载第1/3页

    一直都为封装好的ghost版系统而惊讶,今天发现原来有人共享了万能ghost系统制作方法,特留个印象,以后自己就可以制作万能Ghost系统了 一.前期基础工作 ================= 1.准备所需工具软件(www.ylmf.net提供下载) *S&R&S_V9.6.0608 智能系统封装工具 *DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带) *Ghost_v8.0 & v8.2(v8.0以上版本才能够支持NTFS分区) *Windows2

  • IE或软件加载页中提示脚本错误的解决办法集合

    IE脚本错误 flashget 脚本错误建议重新安装下flashget或者是因为flashget中加载的网页错误,可能是暂时的,可以不用管  联众 脚本错误 建议重新安装下联众世界程序或者是因为联众世界中加载的网页错误,可能是暂时的,可以不用管  有可能还有迅雷5脚本错误msn出现脚本错误,qq音乐的脚本错误都是因为这个原因造成的     我们网管最近出现这样一种情况,只要登上QQ就会弹出IE脚本错误(当前页的脚本发生错误......是 否继续运行该页的脚本程序),用鼠标关不掉,脚本发生错误只能

  • Android通过自定义控件实现360软件详情页效果

    一.概述 最近有不少朋友私聊问应用宝.360软件助手之类的软件详情页怎么做,刚好,最近有时间就模仿360软件助手详情页给大家做个Demo,供大家参考.嗯,关于实现呢,我写了两种方式: 1.ScrollView内嵌软件介绍+ViewPager+ViewPager中是ScrollView,这种方式呢,纯原生,没有涉及到自定义控件,但是这样嵌套呢,涉及到测量以及事件的冲突处理,大家可以自己尝试去做一下,想像起来蛮容易的,做起来其实还是挺费劲的,代码我会给出,核心代码不多,大家自行参考.本文将重点分析第

随机推荐