如何列出没有完全限定版本的Clearcase版本?

时间:2010-05-10 20:00:40

标签: clearcase

在Clearcase中: 我正在尝试在没有特定标签的情况下查找当前视图中所有文件的名称。到目前为止,我已经提出以下建议:

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

但最终会显示文件名,并在末尾添加“@@ / main / BRANCH1 / SUBBRANCH”,我真的只想要文件名。

我尝试添加-short,但是find命令不喜欢该选项,我在手册中找不到改变行为的选项。

2 个答案:

答案 0 :(得分:0)

如果需要,您可以将find与exec指令结合使用(测试两者):

cleartool find -cview -all -element '\!lbtype_sub(LABEL_1)' -print

cleartool find -cview -all -element '\!lbtype_sub(LABEL_1)' -exec 'cleartool descr -fmt "%En\n" "$CLEARCASE_PN"'

注意:

  • Unix语法
  • -element '\!lbtype_sub(LABEL_1)'查找所有元素(文件),但没有带有特定标签的版本(因此与_sub查询关联的lbtype
  • fmt是describe命令的 fmt_ccase 指令。
  • “%En”:元素名称:对于文件系统对象,其标准文件或元素名称或其路径名称;对于一个类型对象,它的名字。
  • "$CLEARCASE_PN"介于双引号之间,因为它的路径名/文件名中可能有空格。

正如OP's own answerLuciano)中所述,如果您不需要查看所有元素(包括已删除的元素),但只能看到当前可见的元素查看, -nxname 就足够了:

cleartool find -cview -nxn -element '\!lbtype_sub(LABEL_1)' -print

我仍然使用-element代替-version,因为它更快,避免无用的重复。

答案 1 :(得分:0)

找到它:

  

-nxname   
从每个所选对象的名称中删除扩展命名符号(默认为@@)以及任何后续版本ID或分支路径名。禁止此转换产生的重复名称。实际上,此选项将扩展名称转换为标准操作系统名称;它还将分支或版本的名称转换为元素名称。

所以

 cleartool find . -cview -nxn -version '\!lbtype_sub(LABEL_1)' -print

打印当前视图中的所有文件&没有标签LABEL_1

的目录(和子目录)