如何在clearcase中找到给定文件的所有标签
我知道一个棘手的解决方案是:如何在clearcase中找到给定文件的所有标签,clearcase,Clearcase,我知道一个棘手的解决方案是: 首先使用ct ls获取文件的完整版本信息 并将版本信息传输到解析脚本,以实际获取文件的标签 但是我想ClearCase应该有一个“内置”解决方案来完成这个任务,而不需要任何外部脚本的支持 如果您碰巧知道任务的“内置”解决方案,请帮助我。 提前感谢。包含各种ClearCase元素的所有格式字符串 对于文件的版本,您可以: cleartool descr -fmt "%l\n" /path/to/a/version %l 标签:对于版本,所有附加标签;否则返回空
- 首先使用
获取文件的完整版本信息ct ls
- 并将版本信息传输到解析脚本,以实际获取文件的标签
提前感谢。包含各种ClearCase元素的所有格式字符串 对于文件的版本,您可以:
cleartool descr -fmt "%l\n" /path/to/a/version
%l
标签:对于版本,所有附加标签;否则返回空字符串。
标签以逗号分隔的列表形式输出,并用括号括起
每个逗号后面都有一个
字符
变体:
%Cl
最大标签数:使用“最大字段宽度”参数指定要显示的最大标签数(请参阅)。
如果有更多标签,“
”将附加到输出。…
如果未指定最大字段宽度,则最大默认值为3%Nl
无逗号:抑制标签列表输出中的括号和逗号
仅用空格分隔标签
Labels: (Rel3.1C, Rel3.1D, Rel3.1E)
Labels without commas or parens: Rel3.1C Rel3.1D Rel3.1E
在这两种情况下,您仍然需要解析结果,但至少输出只能包含标签,如所示:
Rel3.1C Rel3.1D Rel3.1E
添加(从评论中):
唯一的问题是,您正在抓取文件特定版本上的标签。
考虑到分支等可以存在,我们需要能够获取文件上的所有标签。
如果使用版本树图形并选择工具->定位,则可以看到附加到该文件的所有标签。
cleartool中是否有一个公共命令可以返回“locate”或“contents”的结果 单击“标签名称”时,
lsvtree
(图形版本树)确实会显示视图当前看到的元素的所有版本的标签
也就是说,似乎没有“内置”解决方案,其中涉及一些解析:
例如(比OP版本略短,但仍然基于cleartool ls
):
(GnuWin32语法)
或者,仅使用动态视图:
cd m:/myView/path/to/addon.xml@@
# list all files, not directories: the files are the labels
dir /B /A-D
IBM文章“”是查找查询的重要来源。要展开中提到的“
lsvtree
”位,您必须:
要查找带有任何标签的所有元素:
窗口:
UNIX/Linux:
这只会为视图中当前选定的版本查找标签,但您可以重用
lsvtree
部分,以使用标签对文件的所有版本进行grep处理。唯一的问题是,如果存在分支等,您会在文件的特定版本上获取标签,我们需要能够获取一个文件上的所有标签,如果您使用版本树图形并选择工具->“定位”,您可以看到附加到该文件的所有标签,cleartool中是否有一个通用命令将返回“定位”或“内容”的结果?@onaclov2000:不确定是否有否决票,但我已经扩展了我的答案以解决问题“列出所有标签“查询。由于您的更新,我投票给您!很抱歉,没有来得更快,我在谷歌搜索时再次遇到这个问题。我知道这是一篇旧帖子,但当我尝试ct ls-l…
时,``在应该是`\``的空格处,`@海原:刚刚完成了我的答案,列出了一个文件的所有标签。恐怕没有“内置”解决方案。我冒昧地扩展了您的初始链接。StackOverflow是一个问答网站,旨在在每个答案中包含尽可能多的信息,以限制其对外部来源的依赖性(如此链接可能随时过期/更改)+1顺便说一句。
cd m:/myView/path/to/addon.xml@@
# list all files, not directories: the files are the labels
dir /B /A-D
cleartool find . -type f -exec "cleartool lsvtree -a %CLEARCASE_PN%" | findstr
"("
./hello.c@@/main/1 (LABEL100, LABEL99, LABEL98, LABEL97)
./foo.xml@@/main/BR1/1 (REL2)
./bar.o@@/main/1 (REL1)
cleartool find . -type f -exec 'cleartool lsvtree -a $CLEARCASE_PN' | grep "("
./hello.c@@/main/1 (LABEL100, LABEL99, LABEL98, LABEL97)
./foo.xml@@/main/BR1/1 (REL2)
./bar.o@@/main/1 (REL1)