ClearCase一些概念整理

基本概念

ClearCase有时候缩写为CC。

它是IBM Rational 出品的大型商用软件配置管理工具。其核心是版本控制。

尽管能够听到对ClearCase的很多抱怨,比如昂贵、复杂、不好用,但它仍然是收费的版本控制系统中市场份额最大的。

它有两个版本:Base ClearCase和ClearCase UCM。

Base ClearCase向你提供的是文件、目录、版本、标签、分支、触发器和链接等“裸露”的环境。

在此基础上,你可以比较自由的进行设置和二次开发,以满足你实际项目的需要。

它的优点是灵活。

ClearCase UCM是开箱即用(Out of the box)的,它提供了基于Base ClearCase的一套不错的封装。

你只要做一些简单的设置,就可以在实际项目中直接使用了。

它的一些性能指标也比Base ClearCase优异。


版本库


ClearCase将版本库叫做版本对象库(Versioned Object Base,VOB)。

工作区大致对应于视图(View)这个概念。

视图分为两种,静态视图(Snapshot View)和动态视图(Dynamic View)。

静态视图是位于本机的一个目录树,这个其他工具很像。

动态视图有点像虚拟盘符,看着是在本机上,实际上是连到了服务器。

签入和签出


在ClearCase的世界里,签出(Check Out)和签入(Check in)都是针对某个文件的。

尽管工作区里已经塞满了从版本库下载的文件,但在着手修改某个文件前,先要以该文件名为参数调用签出命令,不得偷懒省略这一步。修改好了,再以文件名为参数调用签入命令。

而在ClearCase UCM里,还有Delivery、Rebase这一对词儿。

变更集


ClearCase UCM用相对复杂的方法支持变更集。在ClearCase UCM里,变更集大致对应于活动(Activity)。

活动有标题,在活动创建时输入。而每个文件的修改又可以有注释。

支持工作中文件中间版本的保存:在工作区后面,对应着一个开发人员私有流(Stream)。

中间版本和最终版本都保存(checkin命令)在私有流上,不会给别人捣乱。

而把变更集从私有流提交(deliver命令)到公共流后,大家就都能看到啦。

总之,提交包括两步,从工作区到私有流,再从私有流到公有流。

流这个概念,类似于分支。

更新

ClearCase UCM这里所说的更新,大致对应于ClearCase UCM里的变基(Rebase)私有流,并相应的更新私有流对应的工作区。这里的变基是指用公共流的一个基线来更新私有流的起点,因此改变了工作区的基础。嗯,ClearCase确实有点复杂。

提交到公共流之前,不需要因为CLearCase UCM的工作原理本身的缘故而更新私有流及对应的工作区。

因为除了开发人员自己的私有流有对应的工作区,公共流也有对应的工作区,提交到公共流时,可以在那儿完成代码合并工作。

标签


Base ClearCase是以文件为单位进行版本管理的。因此打标签可能会成为一个
费时间的工作。

当然,使用一些技巧,比如增量打标签(只在自上次整体版本以来有变化的文件上打标签),可以改善性能,但同时也增加了复杂性。

ClearCase UCM是基于Base ClearCase的封装,它使用类似的技巧来改善性能,常常能在几秒钟之内完成打标签的工作。

触发器


ClearCase UCM除了设置触发器外,

还可以锁定公共的地盘(公共流)、仅特定的用户可写,可以提交活动,而对其他人只读;

或者在创建基线时,对包含的活动有所选择;

或者不让开发人员提交到公共流,而是让集成人员在活动被批准时,提交执行活动;

或者同时使用CLearCase和ClearQuest。ClearQuest是IBM Ratinal出品的变更请求管理工具。

还原

ClearCase想把已提交的内容剔出去是比较困难的。

在Base ClearCase里,需要找到每个相关的文件,分别运行合并命令,跟上若干参数。

在ClearCase UCM里,有个叫cset.pl的脚本能让这个事儿方便一点,但这个脚本并不是“官方”的。

分支


在Base ClearCase里,只有文件级分支。

在CLearCase UCM里,用流(Stream)来支持产品级分支。

摘自【未雨绸缪:理解软件配置管理 / 董越著】

时间: 2024-08-30 14:21:20

ClearCase一些概念整理的相关文章

DNS,TCP,IP,HTTP,socket,Servlet概念整理

概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. DNS协议 DNS 协议的作用是将域名解析为IP,域名的数量非常多,域名和ip的对应关系也经常变化,所以就需要专门的DNS服务器,用来将域名解析为IP. windows下,nslookup命令可以查看域名解析的结果.nslookup +网址. 世界各地有很多DNS服务器,也有一些大型公用的DNS服务器可以使用,比如Google的8.8.8.8和国内的114.114.1

面向对象基本概念整理

1.基本概念: 1.1 类与对象的初探 要我说,无论是面向过程的语言也好,面向对象的语言也罢,我首先要给他讲的都是类和对象!--------“这个世界是由什么组成的?”这个问题如果 让不同的人来回答会得到不同的答案.如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子.原子.离子等等的化学物质组成的”.如果是一个画家 呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”.……呵呵,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是 由不同类型的物与事所构成的

TCPIP详解 卷一核心概念整理

今天用wireshark分析一个案例,TCPIP卷一又复习了一遍,整理概念便于查看

G-sensor概述及常用概念整理【转】

本文转载自:http://www.jianshu.com/p/d471958189a0?nomobile=yesG 本文对G-sensor进行整理,先介绍G-sensor的一些基本概念,再具体讲解BOSCH.ST.ADI三家的G-sensor,其中BOSCH的G-sensor重点讲BMA222E,ST的G-sensor重点讲LIS2DH12,ADI的G-sensor具体讲ADXL362. 一.G-sensor概述 什么是MEMS MEME(Micro-Electro-Mechanical Sys

浙江大学软件学院三维动画与交互技术考试概念整理

第一讲 1.    增强现实技术AR: --融合了三维动画.立体视觉和图像处理: --建模.渲染.位置标定.图像融合: 2.    OpenGL是一种用于创建实时3D图像的编程接口. 3.    三维这个术语表示一个正在描述或显示的物体具有三维维度:宽度.高度.深度: --计算机3D图形实质上也是平面的: --在计算机屏幕上显示的二维图像,提供深度(或第三维)的错觉: 2D+透视 = 3D 透视使人产生深度的错觉. 4.    真正的3D是通过人的两只眼睛观察同一个物体,在视网膜上生成具有视差的

storm - 基础概念整理

理论 Hadoop的出现虽然为大数据计算提供了一条捷径,但其仍然存在自身难以克服的缺点:实时性不足.Hadoop的一轮计算的启动需要较长时间,因此其满足不了对实时性有较高要求的场景. Storm由此应运而生,提供了可扩展的,可靠的,易于使用,而且是编程语言无关的实时大数据处理框架. 使用 Components of a storm cluster Storm集群类似于Hadoop集群,storm运行与topo之上. Storm集群中存在两类节点:master节点和worker节点.master运

光纤与PON基础概念整理

近期有幸接触到通讯这一领域,此文专门用于整理记录. 首先是光纤与光缆 光纤(OpticalFiber,OF)是用来导光的透明介质纤维,一根有用化的光纤是由多层透明介质构成,一般能够分为三部分:折射率较高的纤芯.折射率较低的包层和外面的涂覆层,纤芯材质主要为SiO2 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

active directory 学习和概念整理

第一,在局域网内,如何管理计算机上的资源,需要一个管理策略. 微软提供了两种:工作组和域.两者区别就是,工作组是自治的,组内的计算机个个都作为独立.对等的自治实体而存在.恩,这也是以太网的设计初衷. 但是,当我们需要额外的管理模型,其实作为一个组织,更可能的是,需要一个公共的中央控制主机,这就是域模型.域模型中,会提供一个域控制器,域控制器上存储了这个域内的所有账户信息,也就是一个账户数据库Active Directory.这也就导致,资源.账户.机器的概念开始分离. 第二,在域管理中,正常的思

oralce中相关的概念整理

[数据库名]  概念:就是一个数据库的标识,作用等同于我们的身份证的作用,如果一台机器上安装了多个数据库,那么每个数据库都会有一个数据库名称对应,这些数据库名称在数据库被创建的时候,数据库名称也会被写入控制文件中去,在控制文件中是以二进制的文件存储,我们如果要修改的话就不是太方便,所以我们在起数据库名称的时候尽量考虑清楚. 作用:数据库名称是在创建数据库,安装数据库,创建数据库控制文件,修改数据结构的时候或者备份数据库的时候会使用到. 我们如果想在sqlplus中查看当前连接的数据库名称: 方法