use*_*966 8 clearcase cleartool
我找不到将标签应用于当前视图中的文件的正确命令.我尝试了以下命令:
cleartool mklabel -r TEST_LABEL /vob/test/a
Run Code Online (Sandbox Code Playgroud)
但是,问题是该命令将" Test_Label"标签应用于" vob/test/a"目录中的每个文件,而不管文件是否在我当前的视图中.
是否有任何命令仅将标签应用于当前视图中列出的文件?
小智 5
cleartool mklabel -r(ecurse) LABEL_NAME <directory name>
Run Code Online (Sandbox Code Playgroud)
此命令将LABEL_NAME应用于视图文件夹及其下方的所有文件,您只需转到该目录,然后键入以下命令即可创建和应用标签
> cd /vob/test/a
> cleartool mklbtype –nc TEST_LABEL
> cleartool mklabel -r TEST_LABEL .
Run Code Online (Sandbox Code Playgroud)
文档状态说明了标记的版本mklabel:
处理作为目录元素的每个 pname 的整个子树(包括 pname 本身)。在递归下降到子树期间不会遍历 VOB 符号链接。
一个例子提到:
将该标签附加到您的视图所选的当前目录的版本,以及当前目录中及其下的每个元素的当前所选版本。
现在,如果您想真正确定实际标记的版本,一种解决方案是使用find命令并结合您的mklabel:
cleartool find . -cview -exec "cleartool mklabel TEST_LABEL \"%CLEARCASE_XPN%\""
Run Code Online (Sandbox Code Playgroud)
如果您已将该标签应用于不正确的版本并想要移动它:
cleartool find . -cview -exec "cleartool mklabel -replace TEST_LABEL \"%CLEARCASE_XPN%\""
Run Code Online (Sandbox Code Playgroud)
这样,您可以先列出涉及的版本:
cleartool find . -cview -print
Run Code Online (Sandbox Code Playgroud)
然后,如果您同意输出,请应用mklabelthrough-exec指令。
OP user1096966报告使其与 , 一起使用cleartool ls,以确保仅选择当前视图中可见的元素:
cleartool ls -r -vis
Run Code Online (Sandbox Code Playgroud)
没有“-exec”指令,因此可能涉及管道,如下所示(未测试,但您明白了):
cleartool ls -r -vis -s -nxn | xargs cleartool mklabel -replace TEST_LABEL
Run Code Online (Sandbox Code Playgroud)