需要脚本/实用程序为给定路径标记大多数(如果不是全部)ClearCase元素

需要脚本/实用程序为给定路径标记大多数(如果不是全部)ClearCase元素,clearcase,Clearcase,我发现,如果要成功地重新创建特定的代码(标签)版本,必须从VOB开始应用标签。我以为你不必从VOB的名字开始,但你可以:-( 我的VOB中有许多程序。例如: VOBname\programs\Java\Program1\files... VOBname\programs\Java\Program2\files... VOBname\programs\VB\Program1\files... VOBname\programs\VB\Program2\files... 我想做的是让一个脚本或程序接

我发现,如果要成功地重新创建特定的代码(标签)版本,必须从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\Program2)

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

这项功能似乎很久以前就已经集成到GUI或脚本中了,但我看不到可用的功能。当然,您可以手动执行此操作,但这需要更长的时间,尤其是在路径较长的情况下


我知道您可以标记一个目录以及该目录下的所有内容,但如果您从VOB开始,则会标记所有内容(我不想要的内容)。

最简单的解决方案是:

  • 从路径递归应用标签

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

    avob/
    avob/aParentFolder
    avob/aParentFolder/aParentSubFolder
    
根据脚本语言的不同,提取父文件夹可以像perl一样简单

my($filename,$directories,$suffix)=fileparse($path);
#在Unix上返回(“baz”、“/foo/bar/”、“”)
文件解析(“/foo/bar/baz”);

Cool,我将进一步研究这个问题。我想一个更大的问题是“我真的在乎我是否对VOB中的所有文件都应用了标签?有什么害处?”仔细考虑一下,这并没有什么真正的危害。但我想知道,如果真正的ClearCase管理员/专家使用基本ClearCase,他们会做什么。他们会采取我的立场吗?也就是说,标签应该只应用于与项目相关联的文件……或者他们会懒惰并将标签应用于整个vob?@kevinzamora the harm?per应用标签时的表现(这需要时间),当一些开发人员决定使用标签开始基于标签内容的工作时,使用一个标签识别太多元素是不好的:他/她得到太多。不要忘记阅读您过去的ClearCase问题的答案,比如这一个。