发新话题
打印

[已解决] 求助如何创建trigger( 此文章被查看:178次,被回复:7篇!! )

本主题由 cindy 于 2008-5-14 14:39 关闭

求助如何创建trigger

看了SCM里vowtree发的那篇trigger创建的帖子,做了如下试验还是不能创建trigger,操作如下:
1、 cleartool mktrtype -type -nc -postop mktype -trtype -all tr01
反应是:created trigger type "tr01"
说明我创建trigger type tr01是成功的。
可是,当我在proterties of element的trigger页签里建立trigger时,提示错误:
can't attach trigger"trtype01" because it is an all element trigger.

是我加了-all参数的原因么?
出于这点怀疑,我又建立:
cleartool mktrtype -type -nc -postop mktype -trtype tr01 trtype01
反应是:created trigger type "trtype01"
说明我创建trigger type trtype01是成功的。
不过,在我再建立trigger时,还是提示那个错误:
can't attach trigger"trtype01" because it is an all element trigger.

我用没有-all的参数,连trigger type都建不了:
cleartool mktrtype -type -nc -postop mktype -trtype tr03
反应:error:type name required

我其实就是想建立一个trigger,用于将所有新add to source control的元素的protection设定为与父目录一致,是否建立element类型的trigger type才对,可是,再看到那堆operation keywords时又没有add to source control的。
究竟该怎么办呢?请教各位啦


问题已经解决 [打开主题]
本主题的最佳答案为 [ 3 楼].



© 本文为 魔术师约翰逊SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

都过去3天了,是这个问题太简单,达人们都懒的回答么?



© 本文为 魔术师约翰逊SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

add to source control对应的操作就是 mkelem的,在设定trigger的时候指定它就好了,这个是我们这边写的trigger脚本,你试试看,可能也要调试下脚本中的匹配规则,但是创建trigger的方法是一样的,可以参考下的  :)

cleartool> mktrtype -element -all -postop mkelem -exec 'ccperl 脚本存放地址如:\\ccserver\scripts\trigger.pl' -nc Trigger名字






#定义相关变量
$VOB              =     $ENV{CLEARCASE_VOB_PN};
$filepath_temp    =     $ENV{CLEARCASE_PN};

#取得当前的VOB_owner
$vob_des=`cleartool des -long vob:$VOB`;
@vob_des=split(/\n/,$vob_des);
foreach $line(@vob_des){
chomp $vob_des;
  if ($line=~/(\s*)owner\s.*\\/){
  $vob_owner=$';
  }
}

#取得新元素的上级目录地址
if ($filepath_temp=~/.*\\/g){
$folder=$&;
}
$folder=~s/\\$//;

#取得上级目录所属的组名
$folder_group=`cleartool des -fmt %[group]p $folder`;

#改变新元素所对应的权限,属组,owner
#如果是目录的话,权限为770
#如果是文件的话,权限为444
if (-d $filepath_temp) {
system("cleartool protect -chown $vob_owner -chmod 770 -chgrp \"$folder_group\" $filepath_temp");
}
elsif (-e $filepath_temp){
system("cleartool protect -chown $vob_owner -chmod 444 -chgrp \"$folder_group\" $filepath_temp");
}

[ 本帖最后由 jiangmin 于 2008-5-13 09:10 编辑 ]


最佳答案
该回答被楼主/管理员列为正解!



© 本文为 jiangminSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

谢谢楼上的!我这就试试去

© 本文为 魔术师约翰逊 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

trigger建立成功了,但在attach上那个trigger之后,试着添加一个文件testtrig.cpp,报错如附图所示,然后将CC explorer关掉了,再开CC Explorer打开,发现多了一个testtrig.cpp.mkelem文件,这个mkelem文件是视图私有的文件,但那个testtrig.cpp文件已经入库了,不过其权限和上级目录不符
我估计是我针对那段脚本做的调整不到位。

附件

建立Trigger后出错图.JPG (17.4 KB)

2008-5-14 10:36

建立Trigger后出错图.JPG


© 本文为 魔术师约翰逊 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

这个报错好像不是CC的报错的哇?
权限没刷过来的话就是脚本调试有问题的~~需要调试一下的~
原理时一样的拉~ :)

© 本文为 jiangmin 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 jiangmin 于 2008-5-14 10:46 发表
这个报错好像不是CC的报错的哇?
权限没刷过来的话就是脚本调试有问题的~~需要调试一下的~
原理时一样的拉~ :)
脚本调试有没有什么需要注意的点。(抱歉,perl到目前为止还不太了解,惭愧)

© 本文为 魔术师约翰逊 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

回复 7# 的帖子

trigger的话,如果调用了CC的环境变量的话,只有在出发trigger的时候这些变量才会有对应的值的
我调试的时候只要就是逐句的print对应的变量,看看是不是我要得到的值的~
然后再用匹配语句继续过滤的~ :)

© 本文为 jiangmin 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题