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