我正在寻找一个 ClearCase 命令,它将列出我当前视图中可见的所有元素,但没有应用特定标签。
例如,在我的视图中可见的大多数元素都应用了LABEL_X。我想要一个没有LABEL_X的元素的列表。
我显然需要使用cleartool find
,但是在如何构造这样的查询方面,用法和 ClearCase 手册页让我感到困惑。
我正在寻找一个 ClearCase 命令,它将列出我当前视图中可见的所有元素,但没有应用特定标签。
例如,在我的视图中可见的大多数元素都应用了LABEL_X。我想要一个没有LABEL_X的元素的列表。
我显然需要使用cleartool find
,但是在如何构造这样的查询方面,用法和 ClearCase 手册页让我感到困惑。
这应该有效:
ct find -all -ele '! lbtype_sub(LABEL_X)' -print
ct find -ele '! lbtype_sub(LABEL_X)' -print
笔记:
!
(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
”显示,您可以组合任何类型的信息和您想要的结果的演示文稿。
以上工作,但请记住指定 -cview 以获取当前视图,否则您也会从所有其他视图中获取文件。
我需要在我的 Linux clearcase 安装上使用以下内容:
cleartool find -cview -all -version '\!lbtype(LABEL_X)' -print
VonC 帖子中的语法不能与“!”一起正常工作。没有被逃脱。