2009-01-13 57 views
4

我正在查找一个ClearCase命令,该命令将列出在当前视图中可见的所有元素,但是不是对它们应用了特定标签。ClearCase:如何找到没有特定标签的元素

举例来说,我认为可见的大部分元素都有LABEL_X应用于它们。我想要列出那些没有LABEL_X的元素。

我显然需要使用cleartool find,但是用法和ClearCase手册页在我如何构造这样的查询方面困惑不解。

+0

感谢您的反馈意见:我完成了包含'nxn'(无扩展路径名)选项的答案 – VonC 2009-01-14 15:50:35

回答

3

这应该工作:

ct find -all -ele '! lbtype_sub(LABEL_X)' -print 
ct find -ele '! lbtype_sub(LABEL_X)' -print 

注:

  • CT代表了cleartool
  • Unix的语法这里(适用于Windows,用双引号代替简单的引号)
  • 提防空间在!lbtype_sub(在winodws你不需要空间)
  • -ele非常重要的,只有一次发生的指定文件(而不是所有不同版本的文件相匹配的条件)

-ele限制搜索到的元素,而不是版本(这将触发很多结果与涉及的版本...)

-all列出所有元素包括“删除”(即“unreferenced”)的。
第二行只列出可见元素(在当前视图)

你应该执行一个给定的ClearCase中您所选择的子目录的第二个命令行(快照或动态视图)中的所有文件将列出与cirteria匹配的子目录(和子子目录...)。

警告:

  • 文件和目录上市。如果你只想要文件,添加-type f到查询:

    CT发现型的F -ele“!lbtype_sub(LABEL_X)” -print

  • 所显示的内容是元素的扩展路径,即该文件的名称后跟@@

只列出名字不@@,使用“-nxn”(无extendedpathname选项)

ct find -nxn -ele '!lbtype_sub(LABEL_X)' -print 

另一个更复杂也更完整地列出只有名称,没有@@,是使用descr -fmt。例如:

ct find . -ele "!lbtype_sub(LABEL_X)" -exec "cleartool descr -fmt \"%En %d\n\" \"%CLEARCASE_PN%\"" 

ct find . -ele '! lbtype_sub(LABEL_X)' -exec 'cleartool descr -fmt "%En %d\n" "$CLEARCASE_PN"' 

会给你(在windows或unix语法中)未标记为LABEL_X的文件和目录的日期和名称。

通过该'descr -fmt'显示屏,您可以组合任何类型的信息和演示文稿以获得结果。

+0

谢谢,-ele是个诀窍。我正在尝试使用-ver。 此外,我可以通过添加-nxn(无扩展命名符号)获得没有扩展路径(@@)的文件名: ct find。 -ele'!lbtype_sub(LABEL_X)'-nxn -print – barrymc 2009-01-14 15:21:25

2

上面的工作,但请记住指定-cview以获取当前视图,否则您将从所有其他视图获取文件。

1

我需要使用下列在我的Linux ClearCase的安装:“”

cleartool find -cview -all -version '\!lbtype(LABEL_X)' -print 

从VonC的帖子的语法不与正常工作没有逃脱。

相关问题