Chinaunix首页 | 论坛 | 博客
  • 博客访问: 544615
  • 博文数量: 104
  • 博客积分: 2089
  • 博客等级: 大尉
  • 技术积分: 1691
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-29 08:48
文章分类

全部博文(104)

文章存档

2015年(1)

2013年(13)

2012年(31)

2011年(59)

分类: 项目管理

2011-12-27 10:36:04

  • 视图
  • 常用命令
  • ClearCase 安装和使用的一些FAQ
  • 参考
ClearCase具体的说是做配置管理的工具,只是SCM管理工具其中的一种。是RATIONAL公司开发的配置管理工具,类似于VSS,CVS的作用,但是功能比VSS,CVS强大的多,而且可以与WINDOWS资源管理器成使用,并且还可以与很多开发工具集成在一起使用。但是对配置管理员的要求比较高。而且RATIONAL的产品一般都很贵。如果自己找到CRACK的话就没有技术支持了。

视图

1 本文简介

  Rational ClearCase 作为一款功能强大的软件配置管理( SCM )工具,在国内已经得到许多企业用户的认可并被广泛采纳。为了帮助大家更好的了解和使用 ClearCase ,本文将全方位解剖 ClearCase 的重要组成部分:视图( View )。

  2 ClearCase视图的分类

  我们知道,软件配置管理工具的一个基本功能是建立和管理开发人员的工作空间。在 ClearCase 中,工作空间被称为视图( View ),它可以选择所指定任务的每一个文件或目录的适当版本,并将它们呈现给使用者。通俗的讲, View 就像一个过滤器,依据一组配置规则从 VOB 中将我们需要的文件或目录的版本选择出来。 View 是访问 VOB 库中文件和目录版本的手段,通过视图,用户可以浏览、修改、构建可用的文件和目录。

  在实际使用中, View 分为两种类型,即 Dynamic View (动态视图)和 Snapshot View (静态视图,又称快照视图)。下面我们来看看这两种视图有什么差异:

  动态视图:

  • 自动保持与 VOB 库的同步更新;

  • 使用 MVFS 文件系统透明访问 VOB 库,不占用本机空间;

  动态视图无需将文件拷贝到本地目录,通过虚拟文件系统对 VOB 中的版本进行存取操作。

  • 动态视图的使用依赖于网络;

  • 提供了共享派生对象和构建审计功能,这是动态视图独有的。

  • 动态视图通过 mount 指定的 VOB 库来获取数据。

  动态视图采用 mount 的方式获取 VOB 中的数据,速度比较快,它是一个全局视图。

  静态视图:

  • 只能定期通过 update 操作实现文件的更新;

  • 文件被下载到本地,占用本地空间;

  • 可以离线工作,断网使用;

  • 可以在本地进行高速编译;

  • 使用静态视图占用 ClearCase 服务器资源较少;

  • 静态视图通过 load 指定的 VOB 库来查看文件。

  因此你可以只选择下载与你的需要有关的文件拷贝(除非你需要所有的内容),这个可通过通过专门的下载规则来实现。当然静态视图也可以卸载在下载规则中被过滤和删除的文件。

  通过对两种视图比较,我们会发现它们各有千秋。在实际使用中,当你希望离线工作或只需要 VOB 库中的部分代码时,建议使用静态视图,这样还能减少因对服务器频繁访问所造成的压力。如果你使用便携式电脑,使用静态视图则更加便利。

  当需要节省本地磁盘空间、希望频繁自动更新或者仅仅是为了查看文档、代码,创建动态视图既快速又不占用本机空间,是个不错的选择。

  3 如何创建视图

  当你安装了 ClearCase 客户端软件后,要做的第一件事就是创建 View 。如图 1 所示,我们打开 ClearCase Explorer ,以 Base ClearCase 为例,在工具栏里有一项“ Create View ”:

  

  图 1

  点击“ Create View ”后,出现图 2 ,因为我们是以 Base ClearCase 为例,这里选择默认即可。

  

  图 2

  根据你的需求选择创建 Snapshot View 或者 Dynamic View ,见图 3 所示:

  

  图 3

  如果你要创建静态视图,如图 4 ,需要指定该视图在本机的存储路径(存放从 VOB 库中 load 的文件和目录)。

  

  图 4

  如果你要创建动态视图,则只需要指定一个映射盘符即可,见图 5 。因为动态视图是通过 MVFS 访问 VOB 库中的数据,不需要将数据下载到本机。

  

  图 5

  在图 4 和图 5 中都有一个“ Advanced Options ”按钮,点击进入后见图 6 ,这里可以选择你的视图是存储在服务器端还是本机。 ClearCase 的 View 数据(主要是 View database 等)既可以存放在 View Server 中,也可以存放在本机。一般建议存放在 View Server 中,以便组织进行统一管理。

  

  图 6

  选择完成后,将进入如图 7 所示界面,这里有一个“ Inspect Config Spec ”,用来定义该视图的配置规约( Config Spec ),配置规约将决定哪些版本可以看到,点击进入:

  

  图 7

  进入“ Inspect Config Spec ”后,我们会发现里面有默认的规约,见图 8 ,可以直接使用。通常管理员或配置经理会根据开发的需要编写一些特定的配置规约供开发人员使用,在这里进行选择和修改。

  

  图 8

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

  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_Storage\views\ccview \\ccserv2\cc_ Storage\views\ccview

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

  

  图 10

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

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

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

  

  1. printf ("All Views begin registering:\n");

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

  3.   foreach $line(@lines)

  4.   {

  5.   chomp ($line);

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

  7.   chomp ($view_info);

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

  9.   $view_tag = $1;

  10.   $view_stg = $2;

  11.   printf "\n";

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

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

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

  15.   $new_view_stg = $view_stg;

  16.   chomp ($new_view_stg);

  17.   if ($new_view_stg =~ m/ccview/)

  18.   {

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

  20.   }

  21.   printf ("The new_view_stg is:%s\n",$new_view_stg);

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

  23.   if ($rc)

  24.   {

  25.   print LOG_F "$line\n";

  26.   }

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

  28.   printf "\n";

  29.   }

  30.   printf ("All Views register successfully!\n");
  上面的程序完成了将视图在 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提供了透明的版本控制机制。




常用命令

---------------------------------------------
1.最基本的操作
cleartool co -nc xxx.cpp
cleartool ci -nc xxx.cpp

2.查看自己总共co了多少文件
cleartool lscheckout -cview -me -avobs

3.最有用的命令
cleartool man xxx
cleartool help xxx

4.新增目录和文件
cleartool mkdir -c comment new_dir
cleartool mkelem -c comment new_file.cpp

5.放弃co某个文件
cleartool unco -keep file.cpp           //保留当前所改动的文件
cleartool unco -rm   file.cpp

6.主线、分支文件合并
//查找需要合并的文件
cleartool findmerge . -fversion /main/xxxx_path -print 
//比较文件不同
cleartool diff file.cpp file.cpp@@/main/xxxx_path/LATEST
//查看最新版本
cleartool lsvtree file.cpp
//合并
cleartool merge -to file.cpp file.cpp@@/main/xxxx_path/LATEST file.cpp@@/main/LATEST

7.标签相关
//新建标签
cleartool mklbtype -nc TEST_LABEL
//给文件打标签
cleartool mklabel -r TEST_LABEL file.cpp
//删除标签
cleartool rmtype lbtype:TEST_LABEL
//给所有打上TEST_LABEL标签的文件打上TEST_LABEL2标签
cleartool mklabel -replace -version /main/TEST_LABEL TEST_LABEL2 *
//查找打上TEST_LABEL标签的所有文件
cleartool find . -version "lbtype(TEST_LABEL)" -print
//查找打上TEST_LABEL和TEST_LABEL2标签的文件
cleartool find . -element 'lbtype_sub(TEST_LABEL) && lbtype_sub(TEST_LABEL2)' -print

8.将整个目录导入clearcase
clearfsimport -recurse /xxx/xxx/xxx/src /view/zhuj/home/vobs/cc_account
/xxx/xxx/xxx/src目录(包括此目录下的所有目录和文件)被导入/view/zhuj/home/vobs/cc_account中(/view/zhuj/home/vobs/cc_account/src)

 ---------------------------------------------------------------------


1.将整个目录导入clearcase 
clearfsimport -r‘源路径’ ‘目标路径’

2.加锁

find . -name '*.*' -exec 'cleartool lock nuser userame1,username2 "%CLEARCASE_PN%"'

3.解锁

find . -name '*.*' -exec 'cleartool unlock "%CLEARCASE_PN%"'

4.转换格式

chtype -f compressed_file “fileName”

5.查看VOB的基本信息和UUID

des -l vob:.

6.删除视图

rmview -uuid "UUID"

7.删除lost+found

find . -name '*.*' -exec 'cleartool rmelem -f "%CLEARCASE_PN%"'

8.查询某一天的修改记录

cleartool lshis -r -since 07-dec

9.最基本的操作 
cleartool co -nc filename 
cleartool ci -nc filename

10.查看自己总共co了多少文件 
cleartool lscheckout -cview –me -vobs

11.make目录和文件 
cleartool mkdir -c comment newdirectory

cleartool mkelem -c comment newfilename

12.主线、分支文件合并 
//查找需要合并的文件 
cleartool findmerge . -fversion /main/TEST_Path -print 
//比较文件不同 
cleartool diff filename [url=mailto:file.cpp@@/main/xxxx_path/LATEST]filename@@/main/TEST_Path/LATEST 
//查看最新版本 
cleartool lsvtree filename

//合并 
cleartool merge -to filename [url=mailto:file.cpp@@/main/xxxx_path/LATEST]filename @@/main/TEST_path/LATEST [url=mailto:file.cpp@@/main/LATEST]filename @@/main/LATEST

13.标签相关 

cleartool mklbtype -nc TEST_LABEL 

cleartool mklabel -r TEST_LABEL filename 

cleartool rmtype lbtype:TEST_LABEL 

//给所有打上TEST_LABEL标签的文件打上TEST_LABEL标签 

cleartool mklabel -replace -version /main/TEST_LABEL TEST_LABEL * 

//查找打上TEST_LABEL标签的所有文件 

cleartool find . -version "lbtype(TEST_LABEL)" -print 

//查找打上TEST_LABEL和TEST_LABEL1标签的文件 

cleartool find . -element 'lbtype_sub(TEST_LABEL) && lbtype_sub(TEST_LABEL1)' -print


14.察看某目录下的文件

ls

15.man/help命令 
cleartool man xxx 
cleartool help xxx

16.放弃co某个文件 
cleartool unco -keep filename 
cleartool unco -rm filename

17.更改VOB的Owner:

cleartool protectvob –chown root /vob/vob.vbs

18. 更改VOB的Group:

cleartool protectvob –chgrp alluser /vob/vob.vbs

19.增加Additional Group:

cleartool protectvob –add_group group1 /vob/vob.vbs

20.删除Additional Group:

cleartool protectvob –delete_group group1 /vob/vob.vbs

21. 更改group、owner、mod

protect -r -chgrp groupname–chown username -chmod 770 .

22.创建VOB

cleartool mkvob -tag /vobtags/test_code -c "Test" "D:\Data\Tets.vbs"

23. Mount vob 
Cleartool mount /vobtags/vob 

24. 创建视图 
cleartool mkview –tag test /ccvob/views/test.vws 

25. 设置当前视图 
cleartool setview test

26.设置当前的activity 
cleartool setactivity activityname

27. Check out 

Check out一个文件

Cleartool checkout [-reserve][-unreserve] filename


Check out前目录

Cleartool checkout .


Check out当前目录下所有文件

Cleartool Checkout –nc *.*

Check out当前目录下所有的文件和目录中的文件

cleartool find . $file -exec ‘cleartool checkout -nc $CLEARCASE_PN’ 


28. Check in 
Check in 一个文件

Cleartool checkin filename

Check in 当前目录 
Cleartool checkin .

Check in 当前目录下所有文件.

Cleartool Checkin –nc *.*

Check in当前目录下所有的文件和目录中的文件

cleartool find . $file -exec ‘cleartool checkin -nc –ide $CLEARCASE_PN’
-----------------------------------------------------------


创建view:clt mkview -tag view_abcd /view_store/view_abcd.vws
设置view: clt setview view_abcd
编辑config specification: clt edcs

创建branch type:clt mkbrtype dbg_branch1_comments
在某个文件的当前branch上, 拉出一个branch:
clt mkbranch 
dbg_branch1_comments filename.c

now you have make branch on the file, and checked it out.
you can edit it with gvim.
After changed codes, you can complie it successfully, and test the result, you can check it in.
clt ci filename.c
If you want to check out it again:
clt co filename.c

To change the branch name to a formula name you can use the command:
clt rename brtype:dbg_branch1_comments 
brtype:crnumber_branch1_comments

To see the version tree of a file:
clt lsvtree -g filename.c

To see which files is included in a branch, you can edit a script like this find_branch.sh:

echo "$1"
cleartool find -avobs -element "brtype("$1")" -nxn -print | xargs cleart
ool ls -s|grep "$1"

To compare files, I write a useful script file mydiff.

You can use xcc& to open graphic clearcase. So you can do most thing through the menu.
---------------------------------------------------------------

clearcase实用命令

查找分支上的文件
find . -branch brtype(branchname) -print 
创建分支
mkbrtype -c "comment" branchname 
创建Label
mklbtype -c "comment" labelname 
用于 cleartool find 查询:
cleartool find -all -version “lbtype(REL1)” -print
find . -version 'lbtype(LABEL)' -print 
锁分支命令
lock brtype:branchname 
创建trigger
trigger已存在
mktrtype mktrtype -replace -element -all -preop mkelem -nusers shiquan -exec http://www.cnblogs.com/samcn/admin/file://192.168.1.5/cc_trigger/false.bat NO_RM_MK
trigger不存在
mktrtype mktrtype -element -all -preop mkelem -nusers shiquan -exec http://www.cnblogs.com/samcn/admin/file://192.168.1.5/cc_trigger/false.bat NO_RM_MK
-------------------------------------------------------------

开发人员常用命令
1.       建立vob
mkvob –tag /vobtags/vob1 –c “ VOB for project1” /vobstore/vob1.vbs

2.       Mount vob
Cleartool mount /vobtags/vob1

3.       创建视图

cleartool mkview –tag test1 /ccvob/views/test1.vws

4.       设置当前视图
cleartool setview test1

5.       在VOB的根目录下到入数据:
clearfsimport –recurse –c “ comments “ /home/setup/* . ,注意命令的最后为圆点,表示当前目录。

6.       改变VOB的Owner: 
cleartool protectvob –chown root /vobstore/vob1.vbs

7.       改变VOB的Group:
cleartool protectvob –chgrp alluser /vobstore/vob1.vbs

8.       增加Additional Group:
cleartool protectvob –add_group group1 /vobstore/vob1.vbs

9.       删除Additional Group:
cleartool protectvob –delete_group group1 /vobstore/vob1.vbs
修改vob中数据的权限信息

10.   将jmccboss VOB 中所有元素Owner 改成ccadmin,Group改成jmccboss:
Cleartool protect –chown ccadmin –chgrp jmccboss .
.为vob根目录

11.   将jmccboss VOB 中所有元素权限 改成对ccadmin(rwx),jmccboss(rwx),其他VOB附属组成员(r-x):
例: Cleartool protect –recurse –chmod 775 . ,

12.   Mount vob
Cleartool mount /vobtags/vob1

13.   创建视图
cleartool mkview –tag test1 /ccvob/views/test1.vws

14.   设置当前视图
cleartool setview test1

15.   在VOB的根目录下到入数据:
clearfsimport –recurse –c “ comments “ /home/setup/* . ,注意命令的最后为圆点,表示当前目录。

16.   Check out 
Cleartool checkout [-reserve][-unreserve] b.c    Check out一个文件
Cleartool checkout .   Check out当前目录
Cleartool Checkout –nc *.*    Check out当前目录下所有文件
cleartool find . $file -exec ‘cleartool checkout -nc $CLEARCASE_PN’ 
Check out当前目录下所有的文件和目录中的文件

17.   Check in
Cleartool checkin b.c    Check in 一个文件
Cleartool checkin .    Check in 当前目录
Cleartool Checkin –nc *.*   Check in 当前目录下所有文件.
cleartool find . $file -exec ‘cleartool checkin -nc –ide $CLEARCASE_PN’ 
Check in当前目录下所有的文件和目录中的文件 

18.   建立一个snapshot view
cleartool mkview –tag pat_2_snapshot_view –snapshot /viewstore/pat/myviews.vws

19.   编辑config spe
Cleartool edcs

20.   更新snapshot view
cleartool update pat_2_snapshot_view

21.设置当前的activity
cleartool setactivity activityname
      gaibian leixing: chtype binary_delta_file Estonian.r 


ClearCase 安装和使用的一些FAQ

一、 安装手册里面要求建立CLEARCASE_PRIMARY_GROUP用户环境变量,变量值为CLEARCASE_USERS,同时需要访问clearcase的用户都需要为该组的成员,如何理解?

其实这种方法是比较生硬的方法,目的是让CLEARCASE_USERS成为所有clearcase用户的主要组,然后clearcase根据CLEARCASE_USERS这样一个组来判断那些人是clearcase的用户,解决方法是不需要建立CLEARCASE_PRIMARY_GROUP用户环境变量,直接把用户管理里把CLEARCASE_USERS设置为用户的主要组。 
这样设置就不需要设置环境变量了,客户端和服务器端可以实现同步,一劳永逸。 

二、 关于clearcase_albd的一些注意事项

1、 最好事先就建立好clearcase组和clearcase_albd用户
2、 安装输入的clearcase_albd的用户需要和用户管理里的一致
3、 需要把clearcase_albd用户升为管理员,否则以后会出现一些问题。
4、 平时在使用过程中绝对不要更改clearcase_albd的密码,否则会引发不可预知的问题 

三、 第一次运行siteprep.exe需要注意的一点!!

如果在一个服务器上使用siteprep安装客户端发布区域的时候,有一点一定要切记:第一次配置时不要大意,一定要考虑清楚在配置,因为这次配置的选项将一直有效(除非重新安装系统),虽然以后可以再次运行siteprep,但是以后的设置就再也不能生效了。 

四、 安装完clearcase以后,在Clearcase Storage设置的时候,无论如何不能指定存储区域,每次出现错误信息:
Tring to create Vob Storage entry in Clearcase 
registry with a UNC path of "\\svr\cctg_g\Vobs" 
Svrstor :error unable to create security to descriptor for 
\\svr\ccstg_g\Vobs,对该特别用法,安全ID的次级授权部分无效。 

在安装过程中出现了这个问题,而且很奇怪的是,当指定存储区域为NTFS分区的时候,就出现错误,当指定为FAT32分区的时候,就不出现错误。非常奇怪。我的解决方法是先建立VIEWS和VOBS的共享目录,直接指定为我们的存储区域,先装起来用用,然后卸载clearcase ,重新安装,再次设置Storage就好了。 

五、 客户端建立VIEW以后,不能UPDATE ,提示没有空间分配。

在服务器上的 Scheduled Job中运行享用的View Space的Job就可以了。 

六、 数据导入太慢了,简直无法忍受。

把数据导入vob,有两种方法,一种是使用clearexport_ffile 和 clearimport在msdos下操作,一种是使用ccimportwizard 有图形界面执行导入导出的操作,单个文件我觉得ccimportwizard的导入导出速度比clearimport要快。但是如果导入一个非常大的目录结构,在起始分析这个目录结构的时候,ccimport慢的不可忍受,经常一连几个小时没有反映。有一个变通的解决方法(该方法并不好),先使用 ccimportwizard把大的目录结构导入,比如把hpc\linux 这样一个两层的空目录导入,然后在分别把linux下的arch,kernel,init……等等做成一个导入列表,这样每次导入的文件都不是太大,相比而言,能看到较为频繁的进度提示,总体感觉的速度要快一些。 

七、 数据无法恢复怎么办?

备份出去的VOB不能恢复,存在这样一种可能性:权限设置出现混乱,可以尝试这样处理:你在register之前,用D:\Program Files\Rational\ClearCase\etc\utils>fix_prot 清除vob库已有的权限, 设立新的权限(域/用户)
方法:cleartool>register –vob \\dc1\ccstg_g\VOBs\HPC.vob
cleartool>mktag -vob –tag \HPC \\dc1\ccstg_g\VOBs\HPC.vob 
附:修复VOB的完整步骤
修复VOB的步骤: 
首先停止CC服务。 
其次,将完好的备份覆盖以前的VOB 
然后,启动CC服务 
进行如下修复工作 
Fixed the permission of Vob storage location by running 
1.# \etc\utils\fix_prot -root -chown vobowner -chgrp vob_group 
(这里解释一下
#是指安装CC的目录; 
vob_group在写groupname是如果groupname中带空格需加“” 
例如,“Domain Users” 
指global pathname Eg. \\jcserver\ccstg_h\VOBs\jcvob.vbs ) 
2.# \etc\utils\fix_prot -r -chown vobowner -chgrp vob_group 
-chmod 775 
屏幕显示:Re-protect "\\jcserver\ccstg_h\VOBs\jcvob.vbs"? [no] Y 

9.Reregister the VOB. 

#cleartool register -vob \\dc1\ccstg_g\vobs\hpc
(注意,是指global pathname) 
#cleartool mktag -vob -tag \hpc
(注:举例 \test) 

10.Lock the VOB 
#cleartool lock vob: 

11. Check the VOB consistency. 

#cleartool checkvob -pool 
(CLI屏幕出现如下提示: 
C:\Program Files\Rational\ClearCase\etc\utils>cleartool checkvob -pool 
\\ebserr\ccstg_e\VOBs\test.vbs 
cleartool: Warning: Cannot get view info for current view: not a ClearCase obj 
cleartool: Warning: Filesystem object names will not be generated. 
Do you want to continue anyway? [no] y 
这并不是个错误,只是个警告信息告诉你你没有在View内操作。你可以继续或者是set a view然后再运行以上的命令。) 
Any error returned? Please refer to Chapter 16 "Using checkvob" of 
"Administering ClearCase". 

12. Unlock the restored VOB 
#cleartool unlock vob: 

13. Mount the restored VOB 
#cleartool mount 

八、如何删除VOB的TAG?
可以使用cleartool的rmtag命令 如 rmtag –vob –all \HPC 

九、 如何进行VOB的安全设置设置?

这里可以参考一篇文档:
一定要将文件格式设置为NTFS,这样能够更加灵活地设置VOB和VIEW的存储目录的安全权限,而不是仅仅使用缺省的对“everyone”的“完全控制”权限。以下举例说明如何设置以下的权限: 
目标1:普通用户不能在VOB和VIEW的存储目录上新建和删除目录、文件;管理员有全部的权限 
目标2:普通用户和管理员可以进行日常的ClearCase操作 
一. VOB 
1. “ClearCase_Storage”目录: 

共享: 
Domain\ccadmgroup: 完全控制 
Domain\clearcase: 完全控制 
Domain\everyone:完全控制 
安全: 
Domain\ccadmgroup: 完全控制 
Domain\developgroup: 读取及运行、列出文件夹目录、读取 
注意: 不要将此目录的权限设置重置于其下的子目录 

2. “VOBs” 目录: 
共享:无 
安全: 
Domain\ccadmgroup:完全控制 
Domain\developgroup: 读取及运行、列出文件夹目录、读取 
注意: 不要将此目录的权限设置重置于其下的子目录 

3. “XXX.vbs”目录: 
此目录的安全权限一定不可以更改,使用缺省的权限! 
二. VIEW 
1. “ClearCase_Storage”目录: 
共享: 
Domain\ccadmgroup: 完全控制 
Domain\clearcase: 完全控制 
Domain\everyone:完全控制 
安全: 
Domain\ccadmgroup: 完全控制 
Domain\clearcase: 完全控制 
Domain\developgroup: 修改、读取及运行、列出文件夹目录、读 
取、写入 
注意: 不要将此目录的权限设置重置于其下的子目录 

2. “VOBs” 目录: 
共享:无 
安全: 
Domain\ccadmgroup:完全控制 
Domain\developgroup:修改、读取及运行、列出文件夹目录、读 
取、写入 
注意: 不要将此目录的权限设置重置于其下的子目录 

3. “XXX.vws”目录: 
此目录的安全权限一定不可以更改,使用缺省的权限!
需要提醒注意的是,这里的安全管理不是指VOB里内容的权限管理,而是在WINDOWS这一层的安全设置。 

十、 如何备份VOB数据库

基本上就按照如下步骤
  • lock vobs 
  • stop cc services 
  • scopy vob backupfolder 
  • start cc services 
  • unlock vobs
这里只能使用scopy因为需要把文件的权限设置等信息也备份下来,但是需要注意的是,scopy在WINDOWSNT中需要安装Resource KIT ,不过在我们的WINDOWS2000中,没有必要使用改命令,windows2000的xopy命令就可以拷贝权限信息,只要加上/o参数就可以了。
如: g:\Clearcase_Storage> xcopy vobs d:/o/i/s
这里推荐一个人写的一个批处理,不但可以自动的备份,而且每次备份的数据可以形成一个以日期标识的文件夹,非常方便。
  1. REM ClearCase Server Backup File.
  2. REM Write By Denver
  3. REM Version 1.0
  4. REM 2002/10/09
  5. REM
  6. REM LOCK the CC VOBs
  7. REM
  8. echo Lock the CC VOBs now...
  9. cleartool lock vob:\VOB
  10. REM
  11. REM Stop the CC Services
  12. REM
  13. Echo Stopping the CC Services...
  14. net stop "Atria Cred Manager"
  15. net stop "Atria Location Broker"
  16. net stop "Atria Lock Manager"
  17. Echo CC Services Has been stopped
  18. REM
  19. REM Make a new backup folder for CC VOB Backup
  20. REM
  21. cd d:\backup\
  22. md "d:\backup\%date%"
  23. REM
  24. REM Copy CC VOB to backup folders
  25. REM
  26. Scopy VOB d:\backup\%date% /i /o /s
  27. REM
  28. REM Start the CC Services
  29. REM
  30. Echo Start the CC Services
  31. net start "Atria Cred Manager"
  32. net start "Atria Location Broker"
  33. net start "Atria Lock Manager"
  34. Echo CC Services Has been started
  35. REM
  36. REM Unlock the CC VOBs
  37. REM
  38. Echo Unlock the CC VOBs
  39. cleartool unlock vob:\VOB
  40. Echo CC VOBs has been unlocked
  41. Echo CC VOB Backup Task has been finished at %date%

十一、我创建了view,为什么我的ClearCase Explorer看不到?
有的时候会出现这样的情况,解决方法是,直接选择“Add view shortcut”然后选择你的view所在的目录直接确定即可。

参考
  • 视图攻略
    http://www.cnblogs.com/samcn/archive/2011/02/25/1964938.html
  • 百科
  • ClearCase 安装和使用的一些FAQ
  • 一篇帖子
  • 某人搜集的命令
    http://www.cnblogs.com/samcn/archive/2011/08/11/2135339.html
    http://mindream.wang.blog.163.com/blog/static/23251222200762025011522/
  • 一些搜索到命令
阅读(8208) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~