我找不到将标签应用于当前视图中的文件的正确命令。我尝试了以下命令:
cleartool mklabel -r TEST_LABEL /vob/test/a
然而,问题是这个命令会将“ Test_Label
”标签应用到“ vob/test/a
”目录中的每个文件,而不管这些文件是否在我当前的视图中。
是否有任何命令仅将标签应用于我当前视图中列出的文件?
cleartool mklabel -r(ecurse) LABEL_NAME <directory name>
此命令会将 LABEL_NAME 应用于文件夹中和视图下方的所有文件,您可以转到该目录,然后键入以下命令来创建和应用标签
> cd /vob/test/a
> cleartool mklbtype –nc TEST_LABEL
> cleartool mklabel -r TEST_LABEL .
mklabel
文档状态说明了标记的版本:
处理作为目录元素的每个 pname 的整个子树(包括 pname 本身)。在递归下降到子树期间不遍历 VOB 符号链接。
一个例子提到:
将该标签附加到您的视图选择的当前目录的版本,以及当前目录中和下面的每个元素的当前选择的版本。
现在,如果您想真正确定实际标记的版本,一种解决方案是使用find
命令,结合您的mklabel
:
cleartool find . -cview -exec "cleartool mklabel TEST_LABEL \"%CLEARCASE_XPN%\""
如果您已经将该标签应用于不正确的版本并想要移动它:
cleartool find . -cview -exec "cleartool mklabel -replace TEST_LABEL \"%CLEARCASE_XPN%\""
这样,您可以首先列出所涉及的版本:
cleartool find . -cview -print
然后,如果您同意输出,请应用mklabel
through-exec
指令。
OP user1096966报告使其与 a 一起使用cleartool ls
,以确保仅选择当前视图中可见的元素:
cleartool ls -r -vis
is no '-exec' 指令,因此可能涉及管道,如(未测试,但您明白了):
cleartool ls -r -vis -s -nxn | xargs cleartool mklabel -replace TEST_LABEL
doco 非常清楚所标记的内容,事实上,doco 中显示的第一个示例指出...当前视图对象被默认标记和当前选定的版本(即,如果在您的视图中则标记它,否则不标记。)
....从下面的 doco 中提取(注意:上下文和命令以及标签类型选择器 pname 是最后一个参数...因为驻留在工作目录中,所以下面留空)...
示例: • 创建一个名为 REL6 的标签类型。将该标签附加到视图选择的当前目录的版本,以及当前目录中和下方每个元素的当前选定版本。 cmd-context> mklbtype –nc REL6
问候
吉姆2