在创建一个非UCM模式的动态视图后,我们可以通过命令行或图形界面看一下它的Config_Spec:
element * CHECKEDOUT
element * /main/LATEST
这是Base ClearCase视图缺省的Config_Spec,第一行的含义是如果在当前视图任何配置项执行了Check out操作,则选择配置项的被Check out的版本;第二行的含义是选择在main分支上最新的未Check out的版本。
IBM Rational ClearCase的随机文档cc_ref.中是这样描述版本选择规则的:在决定视图上配置项的版本映射时,对这些版本选择规则从上向下检查,首先检查所 有被Mount上的VOB中的配置项是否有符合第一行规则的版本,如果有符合规则的版本,则将配置项的该版本映射到视图上,同时针对该配置项忽略以后和行 的版本选择规则;如果配置项没有符合第一行规则的版本,检查被Mount上的VOB中不符合前面的版本选择规则的配置项是否有符合下一行规则的版本,重复 检查直至检查完最后一行Config_Spec规则;最后就得到了所有已经Mount的VOB上的配置项在该动态视图上的版本映射。
但是在实际中要注意以下几点:在试验中发现如果没有element * /main/LATEST这最后一行,则任何配置项的版本都不会映射到视图上,如果只想将要符合前几行规则的配置项映射,而不想看到main分支上的配置 项的最新版本,则可以将最后一行element * /main/LATEST改为element * /main/0就可以了。
现在,我们回到UCM类型的动态视图来看一下,如果我们针对某个UCM类型的动态视图执行一下cleartool catcs命令,例如,针对cuibz_test_int这个视图:
M:cuibz_test_int>cleartool catcs
ucm
identity UCM.Stream oid:eb5f484d.d89f46d7.b702.04:7c:84:dd:66:88@vobuuid:7ffa1c
3.25884205.996e.90:64:a3:78:d4:22 1
# ONLY EDIT THIS CONFIG SPEC IN THE INDICATED "CUSTOM" AREAS
#
# This config spec was automatically generated by the UCM stream
# "test_Int" at 2005-10-17 9:13:36.
#
# Select checked out versions
element * CHECKEDOUT
# Component selection rules...
element "[662988dbd7e5485997c63b1eec4f62ed=CBZTEST_VOB]/..." .../test_Int/LATET
element "[662988dbd7e5485997c63b1eec4f62ed=CBZTEST_VOB]/..." Initial –mkbranch test_Int
element "[662988dbd7e5485997c63b1eec4f62ed=CBZTEST_VOB]/..." /main/0 –mkbranch test_Int
end ucm
#UCMCustomElemBegin - DO NOT REMOVE - ADD CUSTOM ELEMENT RULES AFTER THIS LINE
#UCMCustomElemEnd - DO NOT REMOVE - END CUSTOM ELEMENT RULES
# Non-included component backstop rule: no checkouts
element * /main/0 -ucm -nocheckout
#UCMCustomLoadBegin - DO NOT REMOVE - ADD CUSTOM LOAD RULES AFTER THIS LINE
我们会发现,原来UCM类型的动态视图获取配置项的版本的规则也是通过Config_Spec来实现的,不过这些规则基本都是系统在创建 Stream时自动生成的,之后所有在该Stream上所创建的View,都会应用这个版本选择规则。不过从这些Config_Spec规则 的#UCMCustomElemBegin描述来看,我们也可以对这个Config_Spec进行修改,以满足我们的特殊要求。