4

我正在寻找一个 ClearCase 命令,它将列出我当前视图中可见的所有元素,但没有应用特定标签。

例如,在我的视图中可见的大多数元素都应用了LABEL_X。我想要一个没有LABEL_X的元素的列表。

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

4

3 回答 3

3

这应该有效:

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

笔记:

  • ct 代表 cleartool
  • 这里的 Unix 语法(对于 windows,用双引号替换单引号)
  • 注意和之间的空间!lbtype_sub在windows中你不需要空间)
  • -ele仅获得给定文件的一次出现非常重要(而不是匹配条件的文件的所有不同版本)

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

-all列出所有包含“已删除”(即“未引用”)的元素。
第二行仅列出可见元素(在当前视图中)

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

警告:

  • 列出文件和目录。如果您只想要文件,请添加-type f到查询中:

    ct find -type f -ele '!lbtype_sub(LABEL_X)' -print

  • 显示的是元素的扩展路径,即文件名后跟@@.

要仅列出不带 的名称@@,请使用 ' -nxn'(无扩展路径名选项)

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”显示,您可以组合任何类型的信息和您想要的结果的演示文稿。

于 2009-01-14T06:45:38.270 回答
2

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

于 2009-02-18T19:50:10.100 回答
1

我需要在我的 Linux clearcase 安装上使用以下内容:

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

VonC 帖子中的语法不能与“!”一起正常工作。没有被逃脱。

于 2010-01-28T08:00:23.557 回答