如何在没有应用标签的版本LATEST的分支上找到所有元素?

时间:2011-03-04 12:41:08

标签: clearcase cleartool

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

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

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

提前致谢 的Mikael

2 个答案:

答案 0 :(得分:2)

最简单的方法是:

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

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

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

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

我不知道一个单行解决方案会立即列出给定分支中没有标签的元素......

答案 1 :(得分: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所有产生一行的元素,其中“label:”字符串后面没有任何内容。

我认为这就是我想要的。希望我没有错过没有标签的任何文件...