您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 >
IBM Rational ClearCase 视图全攻略
作者:网络转载 发布时间:[ 2012/12/7 14:47:05 ] 推荐标签:

  完成了以上的选择和设置后,可以成功创建一个视图了。

  4 视图的管理

  视图通常与任务对应,经过一段时间的使用后,用户因需要会创建了多个视图,这涉及到视图的管理和维护问题。

  4 .1 与视图相关的基本操作

  对于普通开发人员而言,与视图相关的操作主要包括视图的创建和删除,操作相对比较简单。需要强调的是:在删除视图时,要使用 ”Remove View”进行操作,如图9所示。如果使用”Remove View shortcut”,则只是删除了该视图的快捷方式,更新后还会再次出现。

  静态视图有一个特有的操作是 update,需要定期进行,才能和VOB中的数据保持同步。

  图 9

  4.2 关于 hijacked文件

  我们知道,静态视图将 VOB中的文件下载到本地后,文件是只读的。如果你绕过检出(checkout)操作,只是去掉某个需要更改文件的只读属性进行操作,那么该文件被称为“劫持”( hijacked)文件。 具体的表现为:在 ClearCase Explorer 中,处于“ hijacked ”的元素会有一个带对号的红色圆圈。

  如果出现“ hijacked”,有两种操作方式可供选择:

  • 鼠标右击“ Hijacked”的元素,选择“Undo Hijacked”。为了不丢失你对文件所做的改动,Undo Hijacked之后,ClearCase自动生成一个后缀为“keep”的私有文件(view private files),这时你不仅取消了Hijacked,同时也保存了你的工作成果(当然如果不需要可以删除这个私有文件)。

  • 更新视图( update view),然后鼠标右击“Hijacked”的元素,选择“Check Out”,该元素将处于“checked out”状态,这时你可以继续对该元素进行改动,也可以直接做Check in操作, 完成文件变更的入库,形成新的版本。

  以上也给大家提供了利用静态视图离线或在家办公的方法,还不错吧。

  4.3 视图的迁移

  该部分内容主要针对 ClearCase管理员而言。视图的迁移主要是将View Server中的视图在同一个机器中从一个存储区域迁移到另外一个存储区或者跨服务器间移动。通常在视图存储空间不足或者为了提升View Server性能使用新服务器时,需要进行视图的迁移,这样原有的视图信息不会被破坏,客户端基本不受任何影响,迁移后可以正常使用原有的视图。

  下面我们举例说明如何将视图从 CCSERV1这台视图服务器迁移到CCSERV2上:

  4.3.1 首先对CCSERV1上的所有用户的视图信息进行备份。

  4.3.2 将CCSERV2安装为视图服务器,并创建相应的视图存储路径。

  4.3.3 做好以上准备后,可以进行正式的迁移工作。

  • 在CCSERV1上停掉ClearCase服务,如图10所示。

  • 使用ccopy命令将CCSERV1的视图拷贝到CCSERV2上新建的视图存储目录中,如:

  ccopy G:cc_Storageviewsccview \ccserv2ccStorageviewsccview

  上面的操作是将 CCSERV1中ccview目录中的视图信息拷贝到CCSERV2的ccview中,如果有多个目录需要进行拷贝可以写成一个脚本统一进行。

  图 10

  4.3.4 确认拷贝到CCSERV2的数据是否完整。

  4.3.5 启动CCSERV1上的ClearCase服务,在CCSERV2上对迁移的视图进行重新注册。

  因为可能涉及到成百上千的视图,单个进行注册是不现实的,需要通过程序进行。基本的思路是先将视图原有的注册信息删除,然后重新注册到CCSERV2上去。这里给大家一个perl语言编写的例子供参考:

  printf ("All Views begin registering: ");

  @lines = `cleartool lsview -region soft1 -s`;

  foreach $line(@lines)

  {

  chomp ($line);

  $view_info = `cleartool lsview -region soft1 $line`;

  chomp ($view_info);

  $view_info =~ m/(S+)s+(S+)/;

  $view_tag = $1;

  $view_stg = $2;

  printf " ";

  printf("The old view stg is:%s ",$view_stg);

  system("cleartool rmtag -view -region soft1 $view_tag");

  system("cleartool unregister -view $view_stg");

  $new_view_stg = $view_stg;

  chomp ($new_view_stg);

  if ($new_view_stg =~ m/ccview/)

  {

  $new_view_stg=~ s/\\ccserv1\ccview\views/\\ccserv2\ccview\views/;

  }

  printf ("The new_view_stg is:%s ",$new_view_stg);

  $rc = system("cleartool register -view $new_view_stg");

  if ($rc)

  {

  print LOG_F "$line ";

  }

  system("cleartool mktag -nstart -region soft1 -view -tag $view_tag $new_view_stg");

  printf " ";

  }

  printf ("All Views register successfully! ");

  上面的程序完成了将视图在 CCSERV1上原有的信息删除,然后重新注册到CCSERV2的功能。这里需要注意的是:如果存在多个region,需要分别进行处理。

  4.3.6 验证迁移后的视图使用是否正常。

  在客户端检查原有的静态和动态视图能否正常使用,可以做一些常见的操作,如checkout、checkin、update和mount(仅对动态视图)等。

  4.3.7 检查无误后可以将CCSERV1上的视图数据和视图存储路径予以清除。

  至此,整个视图的迁移工作大功告成。

  4.4 视图的清除

  因为用户对视图处理不当,在经过一段时间的运作后,会出现一些垃圾视图(即已经不再使用但没有被彻底清除),日积月累会严重影响 ClearCase 服务器的性能。可以使用以下命令予以彻底的清除:

  cleartool rmtag -view $tag;

  cleartool rmview -force -all -uuid $uuid;

  cleartool unregist -view -uuid $uuid;

  以上命令需要的 tag 、 uuid 信息可以通过 lsview 命令获取,将这些命令进行组合,写成一个脚本便可以实现批量清除垃圾视图。

  5 总结

  本文对 Base ClearCase中的View进行了较为详细的介绍(UCM方式基于活动,故有所差异,本文没有提及),希望能对大家有所启示。由于View本身牵涉内容较多,如有更深层次的需求,可以参考ClearCase自带的用户手册,做进一步的研究。

  本文缩略语:

  VOB(Versioned Object Base): 版本对象库,ClearCase 数据的存储库,它存储了处于版本控制下所有的文件、目录和元数据等。

  View: 视图,它可以选择所指定任务的每一个文件或目录的适当版本,并呈现它们。

  View Server:存储View数据的服务器。

  MVFS(Multiversioned File System):多版本文件系统,它通过使用标准操作系统协议增加一个新文件系统类型,MVFS提供了透明的版本控制机制。

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd