级别: 初级
姗姗 韩, 软件工程师, IBM
2005 年 12 月 19 日
Rational ClearCase 作为一款出色的软件配制管理工具,越来越多的使用者,包括开发人员,软件配制管理员,甚至是项目经理,他们都希望深入了解有关 ClearCase 的配制与使用,从而能够通过 ClearCase 最大化地提高软件开发过程的效率和质量。此篇文章主要针对在不同网络环境下搭建与配制 Rational ClearCase 的操作进行了详细的讲解。
Rational ClearCase作为一款出色的软件配制管理工具,越来越多的使用者,包括开发人员,软件配制管理员,甚至是项目经理,他们都希望深入了解有关ClearCase的配制与使用,从而能够通过ClearCase最大化地提高软件开发过程的效率和质量。此篇文章主要针对在不同网络环境下搭建与配制Rational ClearCase的操作进行了详细的讲解。我们知道在现实工作环境中ClearCase的使用很少是在单机上实现的,通常我们是在网络环境中部署ClearCase,使之发挥其最优的效用。我们这里所谓的网络环境分为两种,一种是指单一操作平台,即在工作网络中全部是Windows或Unix的平台,且ClearCase在相同操作系统间允许相互访问;另一种则是指混合操作平台,即网络中即有Windows平台,又有Unix平台,并且ClearCase允许跨不同操作系统访问。通过这片文章,读者可以了解在单一操作平台环境下与在混合操作平台环境下,ClearCase间是如何能够相互访问的。
在单一操作平台的网络环境中,对ClearCase的配制操作相对简单,因为它并不涉及到不同文件操作系统间一些规则的转换,例如文件的大小写规则,识别文件路径的规则等等。对于在操作系统不同的混合平台中配制ClearCase的操作,需要涉及到"互操作"这个概念,那么何谓互操作(Interoperability)呢?互操作就是在有混合操作平台的网络中,一种操作系统平台的ClearCase客户端可以访问另一种操作系统平台的VOB,用户通过对SAMBA的配置或使用CCFS机制使VOB中的数据共享,从而在Windows与UNIX之间可以对VOB相互访问。我们在后边的文章中会对互操作的配制过程有更详细的解释说明。
那么,谁将会对ClearCase在网络中的配制操作感兴趣呢?首先是企业中的ClearCase配制管理员,他们需要明确在网络环境中如何利用资源有效部署与配置ClearCase;其次是ClearCase管理员,他们需要对VOB进行定期的维护,通常他们通过ClearCase客户端访问某台VOB服务器上的VOB;最后,利用ClearCase开发的程序员也需要了解如何在远程VOB中工作,例如:如何在本地创建视图从而将远程的VOB装载到本地等等。
在这篇文章中,我们会首先了解在单一Windows网络环境中,利用Windows本身具备的SMB机制来进行ClearCase相互间访问的配置;其次,既然在Windows平台上ClearCase能够相互访问,那么我们会考虑到在UNIX平台利用本身操作系统带有的NFS机制使ClearCase间能够相互访问;这仅仅是初步了解了ClearCase在网络中的基本配置过程。接下来的章节中,我们会涉及到互操作的配置,由于VOB所创建的操作系统不同,我们会分别了解当VOB创建在Windows上时,应当如何在UNIX端配置并访问Windows上的VOB; 反之,当VOB创建在UNIX上时,应当如何在Windows端配置并访问UNIX上的VOB。在此篇文章中,为了方便起见,我们以Linux为例。
首先我们看一下在操作最一目了然的单一Windows平台环境下应该如何搭建和配置ClearCase?当前的网络环境构造是这样的:在网络中我们有一个ClearCase VOB server, 它安装在Windows平台上,同时它也作为注册服务器(Registry Server);一台License Server;还有多个ClearCase客户端,他们也都安装在Windows平台上。我们希望能够通过从一个Windows ClearCase的客户端访问在Windows ClearCase VOB服务器上的VOB。
首先,我们在任何一种网络环境中配置ClearCase时,非常关键的一步是要在ClearCase VOB服务器端和ClearCase客户端创建用户,并且保证创建的用户所属组的名称要相同。那么这里不免有人要问,为什么我要在VOB服务器端创建一个用户,他所属的组要跟客户端用户所属的组名称相同呢?这里关系到一个VOB owner和装载 VOB(mount)权限的问题。我们知道,我们需要在ClearCase VOB服务器上创建VOB,那么创建VOB的人即是VOB Owner,且VOB Owner属于一个组。我们同时需要在ClearCase客户端装载这个VOB,而只有VOB Owner和与VOB Owner同组的成员才有权限装载这个VOB。因此为了使ClearCase客户端能够装载(mount)ClearCase VOB服务器端的VOB,并能够访问其中的内容,我们必须保证ClearCase VOB服务器端与ClearCase客户端登陆的用户所属的组的名称一致。
还有一点值得一提的是,ClearCase在网络中是根据主机名来识别ClearCase VOB服务器并访问服务器上的VOB的,而不是IP地址,因此,ClearCase客户端需要能够解析VOB服务器的主机名,假若不能识别VOB服务器的主机名,那么,我们需要在客户端把VOB服务器端的IP地址和主机名写入域名解析配置文件hosts中。在Windows平台上,该配制文件在C:\WINDOWS\system32\drivers\etc目录下。最简单的一种检验是否能够访问一台机器的主机名的方法是通过用在命令行运行ping <主机名>命令来检测。
接下来,我们在ClearCase VOB 服务器上创建几个VOB: Start -> Run -> clearvobtool这时创建VOB的窗口显示出来,如图:
我们键入VOB的名称和一些注释,可能大家已经注意到在图中创建VOB对话框上有两个副选框,一个是指明当前所建的VOB包含UCM组件(This VOB will contain UCM components),显然如果将这个副选框选中,我们所建的VOB将会是一个需要在UCM项目中创建的Component VOB(CVOB),该VOB会关联一个Project VOB(PVOB),并主要用来存储和管理VOB中的各个元素和元素版本等信息,例如文本文件等这样的元素;另一个副选框指明当前所建的VOB是个Project VOB(Create as a UCM project VOB),Project VOB(PVOB)又名为管理VOB(Administrative VOB),该管理VOB将会存储所有关于一个项目(project)中所有的UCM的组件,例如活动(Activity)等等。由于该文章不涉及UCM的任何操作,因此我们在创建VOB时不选种任何副选框,这表明我们将要创建的VOB是一个最基本的存储文档等基本元素的VOB。
在选择了将要创建的VOB的类型后,我们需要给这个VOB指定一个存储空间(Storage Location),如图。注意,这个存储空间必须是可以被网络访问得到的,即共享的一个存储路径。
最后一步我们不需要将此VOB关联任何的管理VOB(PVOB),因为它并不需要任何有关UCM流程的操作。你也许注意到有一个副选框标明是否将当前VOB变成公有VOB,即Public VOB,如图。因为VOB在最初创建时默认为私有的,即Private VOB,对于私有VOB只有该VOB的创建者和与VOB创建者属于同组的用户才能够对该VOB进行管理和操作。如果你希望当前所建的VOB变为公有的,那么需要输入一个该VOB所在的网络区域的管理密码,这个密码可以通过在Registry服务器上以管理员身份执行rgy_passwd来设定,这个密码将以加密的方式存储在Registry服务器上。当一个VOB为公有的时候,这个VOB可以被在Registry服务器上所有Region上工作的用户访问。点击"完成"后,VOB就创建成功了。我们可以在VOB server上创建多个VOB,若想查看VOB的状态,可以用命令行运行cleartool lsvob。
此时我们在服务器端(ClearCase VOB server)的配制就告一段落了。以下是在ClearCase客户端的配制,客户端需要访问服务器端的VOB。
在客户端,我们希望能够访问在ClearCase VOB服务器端创建的VOB。首先,我们需要在客户端将Registry Server(注册服务器)指向ClearCase VOB服务器,如图。我们在前文已经提过,把当前ClearCase VOB服务器同时也设定为Registry Server,因此所有VOB和View的创建信息都注册在ClearCase 注册服务器上。注意,Registry Server可以跟ClearCase VOB Server是同一台机器,也可以不同,Registry Server的作用就是注册并记录当前创建的VOB和View的标示信息,即tag信息。指定Registry Server后,客户端的工作区域(Region)需要和VOB服务器端同步,使他们在同一Region内工作,如图,此时都为interop。注意,在指定Registry Server后,务必要在ClearCase属性面板中重新起动ALBD服务,如图。
此时,我们运行以下几条命令,用来查看是否已经可以在客户端看到服务器端的VOB等相关信息 cleartool lsvob -> 显示在ClearCase VOB Server端创建的VOB。 cleartool lsregion -> 显示当前工作区域的名称,注意,这里显示的是已经在注册服务器上注册过的Region的信息。对于没有在Registry Server上注册过的Region,我们需要在Registry Server上运行cleartool mkregion来注册Region的信息。在后面的文章中,我们会有进一步的讲解。
在能够与ClearCase VOB服务器通信后,我们就可以在客户端装载(mount)服务器上的VOB并开始工作了。首先,我们需要在客户端创建自己的工作视图,即view。我们可以把view想象成一个放大镜,开发人员只有通过这个放大镜才能看到VOB内的相关信息,创建view的过程如图所示:
第一步:Start -> Run -> clearviewtool这时创建view的窗口显示出来,如图
第二步:选择需要创建的视图的类型,是创建动态还是静态视图,如图。这里说明一下动态视图与静态视图的区别。动态视图(Dynamic View)允许通过网络动态访问VOB中的元素,并且可以实时刷新VOB内元素的信息,即当元素被更改后,开发人员可以通过动态视图及时看到元素被更新后的状态。与之相反的静态视图(Snapshot View)是在脱机状态下利用本地主机的文件系统先对一系列元素进行编辑更改等操作,随后在网络环境中连接到VOB服务器端,开发人员再手动操作在服务器端的VOB中同步更新这些元素。
第三步:为所创建视图起名并选择试图的存储区域,该区域需要被共享。若创建动态视图,需要指定一个连接该动态视图的动态硬盘。如图:
第四步:完成视图的创建,并编辑Config Spec。简单而言,Config Spec起到一个过滤器的作用,它决定了通过View能够看到的VOB中不同版本的元素的信息,例如,当前所建的动态视图,我只想通过该视图能够看到VOB中所有版本号是2的元素,那么在Config Spec中可以这样写: element * CHECKOUT element * /main/2
视图创建完了,下面,我们需要装载VOB,并通过该视图能够看到并能够操作VOB中的内容。打开ClearCase Explorer:Start -> Run -> clearexplorer,我们可以看到刚创建的View已经显示出来。在View图标上点右键 -> 选择Mount VOB...选项,就可以看到列表中列出的已经在ClearCase VOB服务器端创建好的VOB,选择欲装载的VOB,并点击"Mount",如图。
注意,如果ClearCase VOB服务器端与ClearCase客户端所安装的ClearCase的版本不一致,那么就有可能导致在不同版本的ClearCase上所支持的VOB的Feature Level不同,此时在装载VOB时就会导致VOB不能正常使用。因此,我们必须要保证在ClearCase VOB服务器端与ClearCase客户端所安装的ClearCase软件的版本是一致的,欲查看VOB的Feature Level,运行Cleartool desc -long vob:,如图:
VOB装载完毕后,就可以对VOB中的不同元素进行操作和版本管理了。 |