2014-10-06 24 views
1



我想在我们的UCM环境中出于安全原因禁用rmver命令。不幸的是,我知道一些用户使用该命令,因此请求被制定为仅针对“有趣”的元素(在ClearCase术语中,意思是附加了超链接等)不允许使用rmver。推理沿着“为什么我不允许删除绝对没有用的版本,并且在任何地方都没有引用?”
即使告诉他们这个命令非常危险,他们也不准备彻底禁用该命令。

现在我看看可能性,发现在rmver的预操作触发器脚本中,我没有很多环境变量可以使用。我唯一能想到的就是解析CLEARCASE_CMDLINE。
由于显而易见的原因,我想避免这种情况 - 首先我不认为它有意义,其次,如果用户使用Windows GUI,就不会设置此变量,据我所知。

有没有一种方法可以禁用“有趣”版本的rmver命令,但对于没有元数据和/或超链接等的版本则禁用?

问候部分禁用UCM中的rmver

回答

1

有没有一种方法来禁用“有趣”的版本rmver命令,但对于没有元数据版本和/或超链接

不容易,但你可以在除了一些用户以外,至少对每个人禁用它(通过预操作触发器)。

这样一来,一个折衷办法是允许rmver,但只是少数,负责当检测到“有趣”的版本不使用它。


更复杂的解决方案将涉及调用脚本以检查标签/超链接。

看到这个pre-op trigger for instance

############################################################# 
# PROT_LABEL_VER_CHECK.pl (Perl) 
# 
# Make sure version cannot be removed if it has a matching 
# protected label attached. 
# 
# Note: 
# 
# Arguments: pattern_1 [pattern_2..pattern_N] 
# 
# Author: A Better Solution, Inc. 
# email: [email protected] 
# URL: http://www.abs-consulting.com 
# Date: Jan. 29, 2005 
############################################################ 
# History: 01/29/2005 : Created for A Better Solution, Inc. 
############################################################ 

This trigger script PROT_LABEL_VER_CHECK预计可从操作前触发调用。

创建一个元素都触发,并适用于指定的操作,如:

cleartool mkttype -ele -all -pre rmver \ 
      -c "Prevents removal of versions with protected labels attached." \ 
      -exec "{path}\perl {path}\PROT_LABEL_VER_CHECK.pl '^REL_*' '^BLD_*'" PROT_LABEL_VER_CHECK 

它使用$XPN = ("$ENV{'CLEARCASE_XPN'}");,以访问版本被rmnamed。

然后,您可以使用fmt_ccase来描述您之后特定元素的版本。
例如,对于标签:

`$CLEARTOOL desc -fmt \%l "$XPN"`; 

你会分裂输出,并且做你的检查:

$label_line = `$CLEARTOOL desc -fmt \%l "$XPN"`; 

chomp ($label_line); 

if ($label_line eq "") 
    { exit 0; } 

($junk, $label_list) = split (/[\(\)]/, $label_line); 

$label_list =~ s/\s//g; 

@labels = split (/,/, $label_list); 
// 
foreach $label (@labels) 
{ 
    foreach $pattern (@patterns) 
    { 
     $pattern =~ s/'//g; 
     //' 
     if ($label =~ /$pattern/) 
     { 
     $MSG = "Enterprise policy prohibits you from removing this version that has any protected label applied. \n\n$XPN\n\nhas the following labels applied:\n\n$label_line."; 
     gripe ($MSG, 3); 
     } 
    } 
} 
+0

由于一吨,链接确实帮助! – user2606240 2014-10-06 12:23:37