大纲:
标准规则
scope pattern version-selector [ optional-clause ]
创建分支规则
mkbranch branch-type-name [ -override ]
...
[ end mkbranch [ branch-type-name ] ]
时间规则
time date-time
...
[ end time [ date-time ] ]
文件包含规则
include config-spec-pname
加载规则
load pname ...
详述
视图配置规则包含选择元素版本的顺序规则集。
每个视图的缺省配置规则为
element * CHECKEDOUT (如果有的话,对于任何元素,选择检出版本)
element * /main/LATEST (否则选择main上的最新版本)
修改配置规则的命令
catcs Lists a view's config spec.
setcs Makes a specified file a view's config spec.
edcs Revises the current config spec of a view.
update -add_loadrules Adds load rules to the config spec of a snapshot view while updating the view.
配置规则如何选择元素版本
对于每一个元素,视图服务器首先匹配配置规则的第一条规则寻找元素版本,如果存在,则这个元素加载到view中;如果有多个版本满足,会报错,没有任何版本会加载到view中;如果没有版本满足第一条规则,搜索将继续。配置规则如此顺序执行每条规则,直到最后一条规则,优先满足第一条规则。
语法总则
每一条规则必须包含在单个文本行内,不能使用(\)(UNIX)和(^)(Windows)或者其它续行符号。多条规则可以放在单行上,用(;)分隔;
以#开始的行为注释行。多余空白将会被忽略掉,如果在version-selector含空白,请用单引号括住。
包含配置规则路径必须使用(/)作为路径分隔符,加载的vob目录路径使用(/)和(\)都可以。
配置规则存在两种形式,一种是文本形式,一种是编译形式的,如果在“错误”的系统上编译会在视图服务器上产生“错误”的编译形式,此时视图将无法在客户端“正常”使用。只需要在“正确”的操作系统上重新编译就好了。cleartool edcs or setcs –current。
例如:
element /vob_p2/src/* /main/rel2/LATEST
在Windows下可以使用,如果在Unix下该vob路径为/vobs/vob_p2,则此配置规则无法使用。
标准规则
范围
指定此规则是应用于所有元素还是某些特定元素上。
element 应用于所有元素
element -file 应用于file元素
element -directory 应用于directory元素
element -eltype element-type 应用于指定类型元素上
模式
* 匹配所有元素路径,不循环匹配
Matches all element pathnames; does not match recursively.
*.c匹配所有以.c为后缀的元素路径
src/util.c匹配任何以src为名的目录中的util.c元素
/vobs/project/include/util.h匹配一个特定元素
src/.../util.c匹配在src子目录中以及本身目录中存在的util.c元素
src/.../*.[ch] 匹配在src子目录中以及本身目录中存在的.c或者.h为后缀的元素
src/...匹配src目录树
注意:所有目录必须以vob tag为相对路径,例如vobtag为/vobs/project,则project/src/util.c是不正确的,必须是/vobs/project/src/util.c或者是src/util.c。
版本选择器
/main main分支
/main/motif/bugfix bugfix分支,从/main/motif分支拉出
/main/2 main分支上的版本2
hello.c@@\main\4 main分支上hello.c的版本4
include@@\main\4\hello.h\main\3 include目录main分支上的版本4下的hello.c在main下去下的版本3
在版本扩展路径中不能使用…符号,例如include.h@@/.../bugfix/REL2 不合法。
根据版本标签选取
...\bugfix\REL2
通过query选择
选择条件通过大括号括住
unix
/main/{TESTED=="yes"} main分支下属性TESTED为yes的元素版本
windows
\main\{TESTED=="yes"}
扩展路径中,不能同时使用分支和query选择
% cat "include.h@@/main/rel2_bugfix/{attype(TESTED)}" 不合法
可选选项
-time date-time
表示在此时间之前的最新版本
/main/LATEST -time 10-Jul.19:00
-time yesterday
/main/bugfix/LATEST -time Wed.12:00
-time 12-jun-99
-mkbranch 自动制作分支
(1) element * CHECKEDOUT
(2) element * .../br2/LATEST
(3) element * .../br1/LATEST -mkbranch br2
(4) element * MYLABEL -mkbranch br1
(5) element * /main/LATEST
(1) element * CHECKEDOUT
(2) element * ...\br2\LATEST
(3) element * ...\br1\LATEST -mkbranch br2
(4) element * MYLABEL -mkbranch br1
(5) element * \main\LATEST
当有多个子句需要创建相同的分支时,使用此语法将更加清晰,功能类似于在包含的每个语句后增加-mkbranch
mkbranch branch-type-name [ -override ]
<config spec lines>
[ end mkbranch [ branch-type-name ] ]
示例:
element * .../branch2/LATEST
mkbranch branch2
element * .../branch1/LATEST
mkbranch branch1
element * /main/LATEST
end mkbranch branch1
end mkbranch branch2
time date-time
[ end time [ date-time ] ]
与mkbranch相似,确认影响范围。
转载于:https://blog.51cto.com/liubincm/478797