3

正如标题所说:我想找到分支上的所有元素(例如DEV_BRANCH),LATEST但尚未应用任何标签。

我知道如何找到没有应用特定标签的元素(如:

但我不知道如何找到没有应用任何标签的元素。

在此先感谢米凯尔

4

2 回答 2

3

最简单的方法是:

  • 在右分支中找到所有具有版本的元素
清除工具找到 . -type f -ele "版本(.../myBranch/LATEST)" -print
  • 要求 lsvtree 和 grep 左括号(意味着至少有一个标签)
清除工具找到 . -type f -ele“版本(.../DEV_BRANCH/LATEST)”\
-exec "cleartool lsvtree \"%CLEARCASE_PN%\"" | findstr "DEV_BRANCH\\[0-9]* ("

您需要在您的查找(或 Unix 上的 grep)中使用一个模式来检测:

  • DEV_BRANCH
  • 一个' \'
  • 版本号
  • 一个空格,后跟一个' ('(表示有一个或多个标签)

这将为您提供带有任何标签的所有元素的列表。
鉴于您可以在右分支中生成具有版本的任何元素的列表,那么您需要区分这两个列表以便从第一个列表(右分支中的版本)中提取所有元素,而不是在第二个列表(元素带有标签)。

我不知道有一种单线解决方案可以立即列出给定分支中没有标签的元素......

于 2011-03-04T13:03:09.783 回答
1

谢谢VonC,

使用您的模式匹配方法,我意识到我可以使用describe而不是lsvtree来查找如下标签:

cleartool find . -type f -ele 'version(/main/DEV_BRANCH/LATEST)'
-exec 'cleartool describe -fmt "%n labels:%l\n" $CLEARCASE_PN' | grep labels:\w*$

这似乎对我有用。我只是对所有产生一行的元素进行 grep,在“标签:”字符串之后没有任何内容。

I think this does what I want. Hopefully I am not missing any files without lables...

于 2011-03-06T10:20:54.490 回答