Clearcase操作使用手册

cysg 贡献于2011-08-20

作者 zhc  创建于2007-06-06 03:32:00   修改者蒋真锋  修改于2011-02-23 02:12:00字数15324

文档摘要:ClearCase是一种配置管理工具,是开发小组用来跟踪、管理软件开发过程各个工件的配置管理系统, ClearCase可以协助开发组织更好地管理软件开发进程。ClearCase可以和Rational公司的其他软件紧密结合,例如UCM、ClearQuest等等。ClearCase包括两套:ClearCase LT和ClearCase (MultiSite)。前者可以用于在同一个局域网的开发小组,适合于中小型开发组织;ClearCase (MultiSite)则适应于分布于不同地理位置、不同局域网的开发小组,适合于大型的开发组织。ClearCase简称为CC。
关键词:

北京瑞斯康达科技发展有限公司 clearcase使用手册 Clearcase操作使用手册 软件名称:IBM Rational ClearCase 编 号: 版 本:1.0 编 写 者:胡小珍 编写日期:2007年5月21日 审 核 者: 审核日期: 年 月 日 批 准 者: 批准日期: 年 月 日 北京瑞斯康达科技发展有限公司 clearcase使用手册 目 录 CLEARCASE 简介 2 系统组成 3 CLEARCASE 使用指南 4 1 说明 4 1.1 阅读目标 4 2 一些基本概念 4 2.1 VOB 的概念 4 2.2 VIEW 的概念 5 2.3 VIEW 的Config Spec 7 2.4 Check In 和Check Out 7 3 使用CLEARCASE 的基本流程 7 3.1 首先安装CLEARCASE Client 端软件 8 3.1.1 安装须知 8 3.1.2 安装图示 8 3.2 创建一个视图 16 3.3 Mount VOB 18 3.4 元素受控,CHECH IN,CHECH OUT,Version Tree 等等 19 3.5 VIEW Config Spec 和工作空间 25 3.6 标签和分支 30 3.6.1 标签(label) 31 3.6.2 分支(branch) 33 3.7 分支和归并 35 3.8 权限管理 38 3.9 如何停止你的Clear Case 39 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 ClearCase 简介 ClearCase是一种配置管理工具,是开发小组用来跟踪、管理软件开发过程各个工件的配置管理系统, ClearCase可以协助开发组织更好地管理软件开发进程。 ClearCase可以和Rational公司的其他软件紧密结合,例如UCM、ClearQuest等等。 ClearCase包括两套:ClearCase LT和ClearCase (MultiSite)。前者可以用于在同一个局域网的开发小组,适合于中小型开发组织;ClearCase (MultiSite)则适应于分布于不同地理位置、不同局域网的开发小组,适合于大型的开发组织。ClearCase简称为CC。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 系统组成 ClearCase 由ClearCase Server和ClearCase Client两个部分组成,其中服务器部分负责数据的集中管理;客户端部分则安装在各个需要使用ClearCase服务的机器上,以及主要开发人员的计算机上,属于典型的Client/Server结构。 ClearCase Server采用VOB(Versioned Object Base)存储配置管理数据,用户通过视图(VIEW)的方式获取VOB中存储的数据;UCM方式中,主要通过Stream (流)和Activity(活动)管理项目。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 Clearcase 使用指南 1 说明 本文为开发人员学习CLEARCASE 的一个简述文档。更详细的文档请参照CLEARCASE 软件安装目录下的PDF 文档。为了开发人员学习CLEARCASE 的针对性,本文档主要聚焦于: 1.开发人员所应该具有的对CLEARCASE 的了解:VOB 和VIEW 等重要的概念的理解; 2.开发人员使用CLEARCASE 的工作流程;开发人员如何利用CLEARCASE 来建立自己的工作空间;VIEW Config Spec 的了解以及分支(Branch)和标签(Label)的运用;为了进一步增加对CLEARCASE 的了解,特别加入了某些内容,这些内容对于CLEARCASE的管理员以及CM 人员所应该熟悉的内容,但并一定需要开发人员来掌握。这些内容采用褐色字区分。我好象没发现有这个颜色的部分吧 1.1 阅读目标 通过本文档的阅读,开发人员应该掌握下列内容: 一些基本的概念: 比如MVFS;元素的版本;CHECH OUT;CHECK IN;分支;归并;标签; 一些比较关键的概念: VOB;VIEW 和 VIEW 的Config Spec; 掌握使用CLEARCASE 的基本流程,以及如何创建自己的私有分支; 一些问题的解决办法。 我们最终的目标是:软件配置管理是软件工程中的重要内容。工欲善其事,必先利其器。让我们一起掌握CLEARCASE 这样的一个可以提高我们团队开发效率、开发质量和优化开发流程控制的配置管理工具。 2 一些基本概念 开始时,需要提到一些基本概念。这些基本概念是进一步阅读的基础,但也并不意味着要完全理解,有个大体的印象就可以了。在第二部分开发人员使用CLEARCASE 的工作流程中会进一步体现这些概念。读者在阅读第二部分的时候,应该自己动手去试验,争取大部分图片都能在你的试验当中能够显示类似的图片来。 2.1 VOB 的概念 VOB 的全称是Version Object Base,版本对象库,是CLEARCASE 特有,特定的数据库系统,当中存放的内容具有版本的概念,保存和记录开发者的历史记录,可以让开发者回溯到任意时期,任意版本的开发阶段。VOB 库中除了用于存放这些需要版本历史记录的元素之外,还需要一些用来更好的组织,描述那些具有版本历史纪录的元素,附加于元素之上的其他内容,提供给元素更多的特性,用来支持并行开发,权限控制。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 如果开发者对关系型数据库有所了解的话,可以作一个类比。比如关系型数据库除了存放最为重要的用户业务数据记录之外,也需要一些存放一些SQL 程序,触发器等等。 图1 说明了VOB 库的逻辑概念:该VOB 库中包含了四个文件元素,每个文件 有个main 的主干分支,该分支上有代表元素不同版本的的数字。该图来自于CLEARCASE 的帮助手册,在CLEARCASE 当中,元素(Element)是具有版本纪录的对象,包括了文件(file)和目录(directory) ,目录的版本就是目录下的文件增加和删除等变化。 Figure 1: VOB 和VOB 中的元素 2.2 VIEW 的概念 VOB 一般是配置管理人员按照项目的配置管理计划在VOB 服务器上创建,根据项目的大小,决定所创建的VOB 的大小,在大的项目中,一个子系统模块对应一个VOB。开发人员也许并不关心这些内容,还是更关注于:我如何将我的文件和代码放入到VOB 中实现版本控制呢?我怎么样才能够观察,处理VOB 库中的内容? 如果熟悉某些关系型的数据库系统,比如Oracle 等,Oracle 提供了除了SQL 语句之外,也提供了视图(VIEW)来帮助使用者观察数据库中的数据记录。读者也非常熟悉相机,通过调节相机的镜头(VIEW)来观察景物。类似的,CLEARCASE 中通过VIEW 来观察、操作VOB 中的内容。 图2形象的说明了VIEW 工作时的逻辑含义: Figure 2: VIEW 和VOB 的关系 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 VIEW 通过某些规则来获取VOB 中元素中的某个版本,并组织成操作系统中的目录结构。在CLEARCASE 中通过MVFS(Multi-Version File System)在Windows 的操作系统中会为VIEW 创建一个虚拟的盘符,公司采用Windows 操作系统平台,创建的视图为动态视图。从VIEW 的盘符下,我们可以观察元素的某个选定的版本,并可以将原来不在VOB 中的文件“受控(Add toSource Control)”到VOB 中,所以VIEW 是开发人员的工作空间。在图2 中,只是说明了从VOB选择元素特定版本的一种关系,在VIEW 中,还可以存在视图私有文件,也就是我们还没有将这些元素受控到VOB 中,VOB 中还不存在这样的元素,只存放在视图的存储池(View Storage)。 在此提一下,客户端安装好CLEARCASE 之后,在程序菜单中,就会有一个创建视图的向导。视图一般创建在用户的计算机上的一个共享目录下(View Storage Directory),因为CLEARCASE 的用户权限直接来自于Windows 操作系统的域用户。CLEARCASE 本身的进程需要一个自动在域中创建的用户身份来运行,同时也为了其他的开发者(一般会是一个组)来访问你的视图。所以该目录的共享权限至少要包括这些用户的权限,如何设定这个共享目录的权限是配置管理员的工作。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 2.3 VIEW 的Config Spec 视图的Config Spec 是视图的一个属性,但是将它单独拿出来说,是因为它的重要性。ConfigSpec 是一个“高级”的“滤镜”,说是滤镜是因为它可以帮我们选择VOB 中元素的某个指定的版本来供我们观察和操作。说是“高级”,是因为滤镜的规格,可以由一些简单的语句编写组成,非常灵活,功能强大。缺省的规格是: Element * CHECKEDOUT Element * /main/LATEST 注释:第一句中 CHECHEDOUT 用来表示当VOB 中的元素某个版本被Check Out,取得该版本上修改权,视图应该首先选择这个版本。如果第一句得不到元素的某个版本,那就执行下一句,该语句选择元素的main 分支上的最新版本。在复杂项目的开发中,这些缺省的规则是不够用的,我们要在这里两个语句中间增加其他的内容。更具体的精彩内容,CLEARCASE 的帮助手册cc_ref1.pdf文档中有详细的说明。后面还会提到一些基本的。 2.4 Check In 和Check Out 前面提到:VOB 库中存放具有版本历史记录的元素,比如拿文件元素来说,文件将具有多个版本。这些版本当然是由开发人员来产生。在ClearCase 中(包括其他版本管理工具),如果我们要修改其中的元素,首先要做Check Out 的操作,意味着取得文件的修改权;当修改完成了,通过Check In 的操作,将你的修改保存到ClearCase 的VOB 库中,并形成一个新的版本。让我们用一个图来作为第一部分“一些基本概念”的结束语吧: Figure 3: VOB、VIEW 和VIEW Config Spec 的关系 3 使用CLEARCASE 的基本流程 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 有了前面的三个重要的基本概念的介绍,具体该如何一步步的做?将是大家希望得到的答案。建议阅读者将本部分的内容作为一个试验手册,练习手册来对待,而不是像阅读小说一样的快速,配置管理员应提供一个试验VOB,做为你的练习场地。(有待申请) 3.1 首先安装CLEARCASE Client 端软件 3.1.1 安装须知 新用户首先应向系统管理员申请用户账号。用此账号才可以登录到Clear Case系统所在的NT系统确保您的系统已经加入活动所在域中,成为Clear Case的一个用户。 安装ClearCase前,确认: 1)登录SOFT域; 2)登录SOFT域的域帐户在本机的管理员组中。 启动安装程序 安装程序路径:\\Soft-server\clearcase\cpf\nt_i386 3.1.2 安装图示 1选择安装文件夹为nt-i386,双击setup.exe。 2在选择安装客户端和服务器对话中,选择安装Clear Case Client。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 3在安装配置对话框中选择自定义安装。 4在安装客户端选项对话框中默认勾选全部选项。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 5在Clear Case Service Account中填写好Account Domain中填写工作域为SOFT,Server Process User Name对应填写clearcase-albd, Clear Case Administrators Group Name 中填写clearcase。 6配置Server相关信息 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 License Server:10.100.0.1 Registry Server:10.100.0.1 Windows Registry Region:SOFT 其他配置保持默认值即可 7 VOB数据库格式对话框中选择第一个选项use the new VOB database format (schema version 54)。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 8点击下一步出现的远程连接对话框选择不允许任何其他用户远程连接到该计算机。 9 MVFS(Multi Version File System)对话框中,前两项Case insensitive MVFS和Case preserving要勾选,最后的一项是Clear Case的动态视图驱动盘符,一般默认为M盘,其他如图所示。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 10选择Clear Case 文件服务器,选择不支持CCFS的安装就可以了 ,涉及到UNIX时候才需要此项功能。 11在开始菜单文件夹选项对话框中,选则你要在开始菜单加入的 Clear Case 快捷方式,Rational Clear Case和 Rational Clear Case Administration。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 12在开始菜单入口选项中进一步设置,勾选所有选项。 13接下来的选项选择缺省设置即可。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 14接下来是询问是否在桌面添加快捷方式的对话框 15点击next之后,出现安装完成的提示。安装完成后,重新启动计算机。安装完ClearCase后必须重新重启机器、以刷新客户端权限到ClearCase Server,否则不能操作ClearCase客户端!ClearCase的安装就完成了。 ClientCase 客户端配置这部分是不是有相应的图更好? 安装完毕客户端软件后,需要对客户端系统进行一些设置。 首先配置用户组,具体方法参照前面讲到的设置环境变量。 其次设置网络属性,设置客户机的网络ID以及登陆的域。注意:需要在域中填写ClearCase Server所在计算机的域名称。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 在Windows 2000中,通过“我的电脑”—右键“属性”-“网络标识”-“网络ID”中设置计算机名称和所属的域。 用户每次登录计算机时,必须选择登录到域。输入在ClearCase Server计算机上的用户名称和密码,这样才能使用ClearCase提供的服务。 这里将提供一个模拟安装环境,大家可以通过模拟安装来熟悉一下。 3.2 创建一个视图 在“开始”---“程序”中,找到ClearCase 的菜单项中的Create View 向导程序,点击后如下:这里是以BASE 方式使用ClearCase,并创建动态视图为例。 Figure 4: 创建视图的过程――1 Figure 5: 创建视图的过程――2 选择动态视图 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 Figure 6: 创建视图的过程――3 给视图命名,指定盘符(一般缺省) Figure 7: 创建视图的过程――4 选择存放路径(必须要是本计算机共享的一个目录) 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 在这里顺带提一下图7 中的第2个红圈标注内容,此处的Network 是ClearCase 中的一个特别的含义。在ClearCase 中为了支持大规模开发活动,比如在一个公司当中同时进行者不同的项目的开发,这些项目基本上是相互独立的。为了隔离这些不同的项目和对应的开发人员。在ClearCase中可以建立一些Region,让不同项目的VOB 归于不同的Region,用户建立视图的时候,也可以在图7 的Network 中选择不同的Region,那么视图Mount VOB 的时候,只能看到该Region 下的所有VOB,通过ClearCase 的Region(Network)来隔离不同的,不相关的项目。图7 中使用了缺省的windows Region。该值要咨询配置管理员,有时候,你的配置管理员发布的ClearCase Client 安装程序会自动设置好该值。最后就是点击图6 中的“完成”按钮,然后在出现的一个反馈信息窗口中点击确定,直到创建视图成功。 3.3 Mount VOB Mount VOB 意味着将VOB Server 上的VOB 关联到你的视图当中,通过视图来“观察”、“操作”VOB 中的内容。(补充提一下,相对应的,有Unmount VOB,我们在做Unmount VOB的时候,应该要保证VOB 的元素应该没有还处在Check out 状态的元素)。 Figure 8: Mount VOB的过程――1 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 下图中有两个VOB,我们只Mount 一个,在一个大的项目中,一个模块将会成为一个VOB,在大项目中,就会有很多VOB 组成。 Figure 9: Mount VOB的过程――2 3.4 元素受控,CHECH IN,CHECH OUT,Version Tree 等等 现在在视图Administrator_VIEW 下有一TRYIT_VOB 的VOB 目录,但是该VOB 中只有一个lost+found 的目录,这个目录有些类似于Windows 操作系统的Recycle Bin 类似,但是要记住你永远不要像Windows 操作系统一样,选中文件,然后按"Delete"键。前面,我们说过,VIEW 的含义是"取景器",我们通过VIEW 来操作和观察VOB 的内容。和我们一般的文件系统不一样。所以,也就意味着,这个VOB 当中还没有内容,只有lost+found 目录。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 Figure 10: 视图下的VOB 的目录结构 拷贝两个文件,a.txt 和b.txt 到该VOB 中,然后选中它们,受控(Add to Source Control) 。受控意味着将视图下的视图私有文件保存到VOB Server 的VOB 库中。 Figure 11: 将视图下的文件受控,存放为VOB 的元素 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 元素受控之后,当我们右键点击某个元素,则在CLEARCASE 的菜单,就会出现check in/check out 的选项。对一个元素Check in 和Check out 使该元素的状态发生变化,Checkout 后(会去掉元素的只读属性),意味着你可以对该元素作修改(但是要记住,不能做直接改名的操作,但是你可以用其他同名文件覆盖。直接改名,指的是使用Windows 的重命名;VOB 中的元素的改名,需要通过CLEARCASE 的所提供的文本命令或者图形方式下的菜单命令)。 Figure 12: 将VOB下的元素的版本Check Out --- 取得修改该版本的修改权 在Checkout 元素的窗口中有个"Reserved "的选项,如果选中Reserved Checkout (保留检出),表示当元素只有等待你check in 之后,别人才可以check in ,所以你一定会最先为元素产生一个新的版本。而其他人做Check out 的时,只能为Unreserved Check out, 他们对该元素作修改,但是必须要等到你做check in 之后,他们才可以做check in 的操作。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 Figure 13: Reserved Check Out --- 具有优先的Check In,产生新版本权限 修改完成后,然后Check In,作Check In 的动作,将在VOB 中为该文件产生一个新的版本。 Figure 14: Check In --- 为元素产生新的版本 在Check In 的动作时,有个选项"Check in even if identical to prevision","即使同前一个版本没有作改动,也可以Check In",这很容易理解,CLEARCASE 认为如果文件没有变化,就没有必要生成新的版本。但我们常常也为元素生成新的版本。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 Figure 15: Check In --- 和上一个版本没有变化,也产生一个版本 当一个文件或者目录,经过多次Check Out/Check In 的操作之后,就会生成很多的版本。CLEARCASE 能够跟踪到我们元素的所有的版本。这就是我们使用CLEARCASE 的版本管理的功能。下图就显示一个元素a.txt 的版本树图,非常形象。 Figure 16: 查看元素的图形化的版本树信息 Figure 17: 版本树图 (请和图1对照,进一步理解VOB 存放有版本纪录的元素) 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 在这里,补充一下CLEARCASE Explorer。刚才我们使用的是Windows Explorer。CLEARCASE 提供了具有功能更体贴的CLEARCASE Explorer。如下图18所示:从这个浏览器,我们看到哪些元素是VIEW-Private File(表示该文件在服务器的VOB 中不存在),哪些元素被Checkout(图中勾标志为Checkout 元素),还可以看到当前视图选择的各个元素的版本(我们的取景器定位在什么位置)。 通过CLEARCASE Explorer 来看视图,先点击VIEWs, 在Views 的标签页中右键菜单中有"Add VIEW ShortCut"选项,通过向导选项,在CLEARCASE Explorer 中增加视图的快捷方式。建议大家尽量使用CLEARCASEExplorer。 Figure 18: CLEARCASE Explorer 的使用(比Windows Explore 更好) 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 3.5 VIEW Config Spec 和工作空间 我们观察:在前面的元素a.txt 的版本树图中(图17),为什么我们的"眼睛"会停留在a.txt的最新的版本上呢?如果,我想看a.txt 的第一个版本怎么办呢?你可以右键直接点击版本树图的1版本,然后选择"Check Out"之后,"眼睛"会停留在版本1 上,此时,你打开a.txt 就看到版本1 的情况。如果仔细想想,我们好像会觉得会有某个标准在限定我们的眼睛的位置。VIEW 作为照相机的“取景器”,也有调节相机的焦距来决定我们选择景物。同样的道理。CLEARCASE 的VIEW 也具有这样的功能,就是VIEW Config Spec;同时VIEW Config Spec 也提供了更多的其他功能。视图建立在开发者的本地计算机上。不同的开发者都一一分别建立自己的视图,然后通过各自的视图的Config Spec 来看VOB server 计算机上的VOB。同摄影一样的道理,众多的摄影者可以以自己的技术视角去看模特。CLEARCASE 通过视图来隔离不同开发者的工作空间。前面我们提到的Mount VOB 和Unmount VOB,将VOB 和VIEW 建立关联,也可以类比为:将模特( VOB)请到T 台上,供镜头(VIEW)表现。用右键点击视图,在菜单中有“Properties of VIEW”,进入可以看到如下窗口: Figure 19: 视图的Config Spec 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 上面的Config Spec 是缺省的语句:Config Spec 中的语句,大家都明白是从上到下执行的,如果某一句能够得到元素的版本选择结果,则停止执行,不再执行下面的版本选择语句。其中的*号,表示对所有内容都是起作用的(作用域)。 Element * CHECKEDOUT Element * /main/LATEST 相应的简单的解释: 第一句:表示选择被 Checkout 的元素的版本;这一句总是在最前面; 第二句:表示选择元素的main 主干分支的最新版本。当我们通过“Add to Source Control”将文件或者目录放入到VOB 中时,就会成为VOB 库中的元素,VOB 的含义是 Version Object Base,其中的元素是具有版本的概念,总会有一个main 的主干,可以让大家在做check in 的时候,在main 上形成一个个的版,如图16所示。所以本语句可以看作是一个垃圾收集器。总是能够看到元素的main 分支上的最新内容。 较多情况下,ConfigSpec 中的语句分为三个部分, 第一部分,元素类型选择部分,我们几乎始终使用Element; 第二部分,作用域(或者模式匹配),我们常用“*”来匹配所有的元素路经,另外还有比较多见的是,用类似于“\CC_TEST\train_folder\...”来匹配所有的目录路经的前部分,也就是限定特定的目录下的内容。另外“*.txt”“\CC_TEST\test.txt”等等之类也是可以的,但是很少如此用。 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 第三部分,就是版本选择。比如当我们在元素的版本上附加了标签REL2 后,我们可以用REL2 来作为版本选择的依据,另外如“.../mybranch/LATEST”表示选择mybranch 分支下的最新版本,不管该分支建立的位置情况,“…”(三个点),表示一种模式匹配,比如/main/mybranch/LATEST /main/testbranch/mybranch/LATEST都可以用“.../mybranch/LATEST”表示和匹配。 请在这个地方思考一下了:假如一个文件在该文档的生命周期中,会有多个人对它进行修改,假如只有一个main 主干上产生版本。就会比较混乱。再比如:假如一个产品会同时进行不同版本的开发。比如通讯系统的短消息系统,这种产品的购买地区都会需要一些比较客户化的版本;再比如医疗系统的某些产品,因为不同国家和地区的技术要求和规范以及客户的不同,也需要同时进行多个版本项目的开发;而在企业管理软件中,有时候需要为一个企业客户进行特定的开发活动,同时你的公司有好几个这样的企业客户项目。你希望在同样的VOB 库中进行不同版本的开发,你主要考虑到在开发过程中,这些产品的不同的版本在同时进行,需要随时引入其他版本的开发成果。 图20和图22也许就是你希望的答案: Figure 20: 不同的开发者进行并行开发 对同一个文件sysfuncRequest.doc,三个开发者分别从DOCV1.00 版本上拉出自己的分支,各自在自己的分支上进行修改。当修改到完成后,可以归并到main 主干上生成新的版本。上图是stephen 的工作视图下的情况,stephen 视角正关注于stephen_branch 上的第一个版本。下图显示了stephen 所看到的描述版本的文件名:sysfuncrequest.doc@@\main\stehpen_branch\1 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 此时应该理解:sysfuncrequest.doc 在VOB 当中是代表一个元素的名称,而如果你要知道这个元素的内容的话,应该需要明确指定版本信息的文件名称(Version-Extended Pathname)。 Figure 21: 了解附带版本信息的文件名 图22可以表示目录b 在有关系的同一个项目的不同的版本(目录同样是VOB 中的元素,也具有版本,目录的版本就是目录下的文件增加,删除等历史)。一个版本用于中国市场,另外一个版本用于美国市场。该图所用的视图的Config Spec 为开发美国市场的版本的开发人员的视图。 Figure 22: 基于某个开发基础,生成的适用不同国家的产品开发分支,做并行开发 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 通过上述内容,读者对于视图、视图的Config Spec,以及分支有了基本概念上的大致的了解。不同的开发小组或者开发人员使用不一样的View Config Spec,从而让他们工作在不同的分支上,形成各自的“工作空间”,来支持并行开发。各自的View 的Config Spec 决定了工作空间:工作的文件和文件的版本(也包括目录)。有了这些基本概念的了解后,我们来进行“如何作”,“如何更好的去做”的话题,我们将开始一些需要集中你的注意力的内容了。主要聚焦于: 一. 标签和分支; 二. 分支和归并; 三. 工作空间管理和规划;主要针对配置管理人员。 在进一步学习新的内容之前,请先看图23,提出一些问题: 一. 能够清楚理解“元素”和“版本”的概念么?(希望你已经能够很清楚的知道) 二. 能找出图中哪些内容是“标签”?哪些是“分支”?能大概猜想它们的作用么? 三. 图中的红色曲线的会表示什么含义呢?能给出一些你的估计么? Figure 23: 一个典型的元素MyFile.c 的版本树图 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 3.6 标签和分支 用鼠标右键点击VIEW 下的VOB,右键菜单中的中的 Explore Types,将会出现下图: Figure 24: 浏览VOB 中存放的元数据 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 前面说过,VOB 是版本对象库,中间存放的元素(文件或者目录)具有版本的概念。VOB 当中除了存放有版本特性的元素(Element )之外,还需要存放一些用来很好描述和识别,帮助大家来很好的组织这些元素的附加内容,我们称之为metadata(元数据),用来表述数据的数据。比如,前面的几个图,就使用了分支,标签等等。Explore Types 中的Type 的含义,就类似于编程中的Class;你可以到其中的Element type 中看看,就有directory,file 等等。请右键点击,察看属性,就有下列表述: directory:Predefined Element type used to represent a directory. file:Predefined Element type used to represent a file. 我们存放到VOB 库中的每一个具体的文件,都是属于CLEARCASE 的file 类型(Type,Class)的一个具体的实例,存放到VOB 库中的目录,都是属于CLEARCASE 的directory 类型(Type,Class)的一个具体的实例。 3.6.1 标签(label) 标签用来标识重大的开发阶段,便于检索和组织软件代码和文档。要给元素某个版本应用标签,首先要在图24中的Label type 中创建label 类型,然后可以通过ClearCase Home Base 中Apply Label 向导工具来为视图中的元素的当前版本附加label,还有一种方式就是直接在版本树视图那里右键选择,也可以使用applyLable 形成附加于元素上的label 实例。 Figure 25: 给元素的视图中下显示的版本附加标签 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 利用该向导工具,可以一步步的设定为视图下的VOB 的那些元素的当前视图显示版本,附加什么样的标签。对于开发者来说,在图形方式下给元素的版本应用标签,总是比较方便些,先在图23中的“label type”中创建标签类型,然后在图25中“Apply Label”的向导工具来给为视图中的你要选择元素的当前版本附加标签。有些开发者,更愿意使用命令行的方式,他们觉得命令行方式快,似乎是更喜欢:命令行比图形操作更本质一些。如果你希望在ClearCase 所提供的命令行下进行操作的话,下面这些命令可以参考: 一个例子: cleartool mklbtype -c "Version label for V2.7.1 sources" V2.7.1 cleartool mklabel -recurse V2.7.1 . 一些解释: 第一句,创建一个标签类型 V2.7.1 ,并用-c 来附加一个注释; 第二句,给当前的目录下(注意这一句的最后面有个“.”号代表当前目录)的所有元素的当前视图选择的版本应用V2.7.1 标签,-recurse 参数表示递归运用,对该目录下的目录也有效。另外举一例: mklabel -replace V2.7.1 hello.c@@\main\4 对hello.c@@\main\4 文件版本应用标签V2.7.1, -replace 参数表示如果标签已经应用到该元素的其他版本的话,则移动到\main\4 的版本上。 关于命令方式使用CLEARCASE 的话题: 现在我们接触到CLEARCASE 的命令行操作了。对于一般开发人员所用操作,在Windows 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 平台下CLEARCASE 大部分都提供了基于图形方式的用户界面(GUI),某些复杂的操作,如果可用命令行,学习一些能够提高我们工作效率的命令行操作,更好的掌握CLEARCASE能够提高我们开发工作效率的工具是必要的。在本文中,我们不讨论某个命令的具体细节信息。在Windows 平台下的“开始”菜单的“运行”中输入 Cleartool man 可以获取Cleartool 命令集下的所有子命令的详细帮助信息。 3.6.2 分支(branch) 在元素的版本树上,用具有一定含义的字符串来标识元素的某个特定版本,这是label 的作用。而分支是用于在元素的某个版本拉出一个枝干,用于并行开发,或者解决一个Bug 。 要给元素的某个版本创建分支实例,必须先在VOB 中的Explore Types 中的branch type 中创建分支类型。创建分支的实例,有两种应用方式,一种是为特定的元素创建分支实例,需要ClearCase 所提供的命令行来操作;另外一种方式在视图的Config Spec 中使用 –mkbranch 命令,“统一”的为元素创建分支,这往往是为了并行开发的目的而这样做。 为特定的元素创建分支实例: 我们可以为特定的某个元素创建分支,比如你为了解决某个Bug,需要修改某个文件,但是该BUG 解决起来比较复杂,你需要记录在解决BUG 过程中的一些文件修改版本,但你不希望在原来的分支上产生太多的版本记录。此时你就可以为特定的某些元素创建分支实例,可以在ClearCase的命令行中操作。例如: 一个例子: mkbrtype -c "bugfixing branch" bugfix_branch mkbranch -nc bugfix_branch hello.c@@/main/3 相应的解释: 第一句创建一个名为“bugfix_branch”的分支类型; 第二句在元素的hello.c 的main 分支上的第三个版本上创建分支bugfix_branch;如果该语句换为“mkbranch -nc bugfix_branch *.c”,表示在当前目录中,在当前的视图选择的以.c 为后缀的所有元素的当前版本上创建bugfix_branch 分支实例; 顺便提一下:既然可以创建分支的实例,那么自然也可以删除分支的实例(如果删除分支类型,所有该分支类型的实例将被删除)。但是我们使用ClearCase 的主要的目的就是为了保证保留开发过程的所有的历史纪录,所有大多数的删除操作是违背我们使用ClearCase 的目的,尽量不要删除任何内容,ClearCase 能够将“错误”的内容和“正确”的内容,都能够有条理的组织在一起,并不妨碍你的工作视线。 通过Config Spec 语句来统一创建分支实例: 如果是为了并行开发,我们常常在视图的Config Spec 中使用-mkbranch 的命令,而统一为视图下的所有元素创建并行开发的分支。下面就是一些这种应用的一些视图的Config Spec 的例子: 例一: 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 element * CHECKEDOUT element * /main/dev_branch/LATEST element * /main/LATEST -mkbranch dev_branch element * /main/LATEST 对应的解释: 第一句,找被Checkout 的版本; 第二句,找main 主干下的dev_branch 分支上的最新版本; 第三句,找主干上的最新版本;如果元素被Check Out 的话,会触发在元素的最新版本上创建dev_branch。因为创建元素的分支是对元素的修改,必须要被做Check Out 的时才会触发。然后会重新对该元素解释运行Config Spec 的内容。此时视图将选择/main/dev_branch 分支上的被CheckOut 的版本。如果该分支上被Check Out 的元素版本被Check In 的话,视图将选择/main/dev_branch分支上的最新版本,也就是第二句规则的运用结果。(顺便提醒一下,dev_branch 的分支类型应该被事先创建)。当修改视图的Config Spec 为例一的情形后。可以使用ClearCase 的复合命令来为某个VOB下(假定VOB 为TRYIT_VOB)的所有元素做一次Check Out 的操作,然后再Check In 将为所有元素产生dev_branch 的分支。让使用该视图Config Spec 在dev_branch 分支下进行工作。参考命令为: cleartool find Z:\TRYIT_VOB -exec "cleartool checkout -nc %CLEARCASE_PN%" 例二: element * CHECKEDOUT element * /main/forchina_branch/LATEST element * VER1.00 -mkbranch forchina_branch element * /main/LATEST 对应的解释: 和例一相比,这里拉出分支的版本并不是在为元素创建分支时的元素的main 主干上的最新版本,还是基于特定的label 所识别的版本,这里需要注意的一点就是:如果你的视图下有好几个VOB,你要保证这些VOB 中都有VER1.00 的label type (VOB 中没有label 类型,无法该VOB 中的元素附加该label 实例),在创建VOB 的时候,我们可以指定label 是Global 的范围,属于同一个管理VOB 下的所有子VOB 将存在这样的label。如图: Figure 26: 指定label 的范围是Global 的 (Branch type 有类似的属性设定) 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 例三: element * CHECKEDOUT element \TRYIT_VOB\... .../ sun_branch /LATEST element \TRYIT_VOB\... /main/LATEST -mkbranch sun_branch element * /main/LATEST 对应的解释: 第二句和第三句中,并不是像前面两个例子一样是针对视图下的所有VOB 所起作用。限定了表示VOB 的目录。也就是说,对其他VOB,是不使用这两条规则的。 3.7 分支和归并 归并(Merge)是和分支相对的一个概念,我们为了并行开发(或者为了解决某个BUG)等各种目的,我们为元素创建分支。在并行开发过程中,一个分支上的开发有可能需要引入另外一个分支上的开发成果,或者是为了解决某个问题还创建的一个bugfix_branch 分支,当问题解决完成后需要回归到正常的dev_branch 分支上,都需要用到归并(Merge)。前面提到的图23:一个典型的元素MyFile.c 的版本树图中,其中的红色箭头曲线表示从一个分支下的版本归并(Merge)到另外一个分支下的版本的情形。下面三个图表示了对一个文件元素的Merge 过程的具体操作。下图表示:先选中要Merge 的元素的一个版本,在鼠标右健菜单中使用 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 “Merge to”,然后选择要Merge 到的目的版本。 Figure 27: Merge 操作过程----1 这里省略了一个进行Merge 操作的配置设定的一个窗口,我们选择用图形方式查看Merge 的具体。然后可以看到类似于如图28窗口,该图中上半部分表示Merge 后所产生的结果文件内容,如果在两个版本之间有内容冲突,我们可以通过图中用红圈1标注处按钮来决定你所希望得到的Merge 的结果版本。最后保存。 Figure 28: Merge 操作过程---- 2Compare功能也需要讲下吧 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 图29是Merge 后,作Check In 操作,产生了Merge 的结果版本main\ssme\6,并作CheckOut操作后的情形。 Figure 29: Merge 操作过程---- 3 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 Merge 的操作,通过练习几次就可以有很好的体会。 3.8 权限管理 权限管理在Type Explorer里面选择对应的类型的属性,选择要进行权限管理的对象, 以分支的权限管理为例: Figure 30: 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 Figure 31: Figure 32: 在LOCK页面中即可进行权限管理。其余各种类型权限管理雷同。 3.9 如何停止你的Clear Case 打开控制面版,找到Clear Case的图标,双击。 Figure 33: 版本: 1.0 第 页 共 40页 北京瑞斯康达科技发展有限公司 clearcase使用手册 选择services start up,你就可以启动和停止Clear Case的服务。 Figure 34: 版本: 1.0 第 页 共 40页

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 20 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档