8

我找不到将标签应用于当前视图中的文件的正确命令。我尝试了以下命令:

cleartool mklabel -r TEST_LABEL /vob/test/a

然而,问题是这个命令会将“ Test_Label”标签应用到“ vob/test/a”目录中的每个文件,而不管这些文件是否在我当前的视图中。
是否有任何命令仅将标签应用于我当前视图中列出的文件?

4

3 回答 3

5
cleartool mklabel  -r(ecurse) LABEL_NAME <directory name>

此命令会将 LABEL_NAME 应用于文件夹中和视图下方的所有文件,您可以转到该目录,然后键入以下命令来创建和应用标签

> cd /vob/test/a
> cleartool mklbtype –nc TEST_LABEL 
> cleartool mklabel  -r TEST_LABEL .
于 2015-04-24T07:03:19.287 回答
1

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

然后,如果您同意输出,请应用mklabelthrough-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
于 2011-12-14T06:35:15.450 回答
0

doco 非常清楚所标记的内容,事实上,doco 中显示的第一个示例指出...当前视图对象被默认标记和当前选定的版本(即,如果在您的视图中则标记它,否则不标记。)

....从下面的 doco 中提取(注意:上下文和命令以及标签类型选择器 pname 是最后一个参数...因为驻留在工作目录中,所以下面留空)...

示例: • 创建一个名为 REL6 的标签类型。将该标签附加到视图选择的当前目录的版本,以及当前目录中和下方每个元素的当前选定版本。 cmd-context> mklbtype –nc REL6

问候

吉姆2

于 2012-02-22T01:13:55.237 回答