需要脚本/实用程序来标记给定路径的MOST(如果不是全部)ClearCase元素

时间:2014-07-17 17:46:30

标签: clearcase

如果您想成功重新创建特定的代码(标签)版本,我发现必须从VOB开始应用标签。我认为你不必从VOB名称开始,但你做到了: - (

我的VOB中有很多程序。例如:

VOBname\programs\Java\Program1\files...
VOBname\programs\Java\Program2\files...
VOBname\programs\VB\Program1\files...
VOBname\programs\VB\Program2\files...

我想要做的是有一个脚本或程序,它接受两个参数,路径和标签,并将该标签应用于该路径中的正确目录和文件。

它不应该将标签应用于其他非相关目录(即,如果我标记Java \ Program1,它也不应该标记Java \ Program 2。

我还需要反过来 - 如果有人错误地应用了标签,那么我需要从路径中删除标签。

很久以前,这个功能似乎已经被整合到GUI或脚本中,但是我没有看到一个可用的功能。当然,您可以手动执行此操作,但这需要更长的时间,尤其是如果您有一条很长的路径。

我知道你可以标记一个目录和该目录下的所有内容,但是如果你从VOB开始,那将标记所有内容(我不想要的)。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是:

  • 递归地应用路径

    中的标签
    cd /path
    cleartool mklabel -replace -recurse LABEL
    
  • 对于给定路径,提取父文件夹,并标记:

    avob/
    avob/aParentFolder
    avob/aParentFolder/aParentSubFolder
    

根据您的脚本语言,提取父文件夹可以像perl File::Basename

一样简单
my($filename, $directories, $suffix) = fileparse($path);
# On Unix returns ("baz", "/foo/bar/", "")
fileparse("/foo/bar/baz");