如何以clearcase查找给定文件的所有标签

Hai*_*ang 2 clearcase

我知道这个taks的一个尴尬的解决方案是:

  • 首先用于ct ls获取文件的完整版本信息
  • 并将版本信息传递给解析脚本以实际获取文件的标签.

但我想ClearCase应该有一个"内置"解决方案来完成这项任务,而不需要任何外部脚本的支持.

如果您碰巧知道任务的"内置"解决方案,请帮助我.
提前致谢.

Von*_*onC 6

fmt_ccase 包含各种ClearCase元素的所有格式字符串.

对于文件版本,您可以:

 cleartool descr -fmt "%l\n" /path/to/a/version
Run Code Online (Sandbox Code Playgroud)

%l
标签:对于版本,所有附加标签; 否则为null字符串.
标签以逗号分隔的列表输出,括在括号中.每个逗号后面都有
一个<SPACE>字符.

变种:

  • %Cl
    最大标签:使用max-field-width参数指定要显示的最大标签数(请参阅指定字段宽度).
    如果有更多标签,...则会在输出中附加" ".
    如果未指定max-field-width,则最大默认值为3.
  • %Nl
    无逗号:禁止标签列表输出中的括号和逗号;
    仅使用空格分隔标签.

结果可能是:

Labels: (Rel3.1C, Rel3.1D, Rel3.1E)
Labels without commas or parens: Rel3.1C Rel3.1D Rel3.1E
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,你仍然需要解析的结果,但至少可以输出包含标签,如:

Rel3.1C Rel3.1D Rel3.1E
Run Code Online (Sandbox Code Playgroud)

onaclov2000添加(来自评论):

唯一的问题是你正在抓取文件特定版本的标签.
鉴于分支等可以存在,我们需要能够在文件上获取所有标签.
如果您使用版本树图形并选择工具 - >"定位",您可以看到附加到该文件的所有标签.
在cleartool中是否有一个通用命令会返回"locate"或"contents"的结果?

lsvtree当您单击"标签名称"时,(图形版本树)会显示视图当前所见元素的所有版本的标签

话虽如此,似乎没有"内置"解决方案,并涉及一些解析:

例如(比OP版本略短但仍基于a cleartool ls):

ct ls -l addon.xml@@|grep version|gawk "{gsub(/^version.*@@\\\\/,\"\",$0) ; gsub(/ \ [.*/,\"\",$0); print $0}"
Run Code Online (Sandbox Code Playgroud)

(GnuWin32语法)

或者,只有动态视图:

cd m:/myView/path/to/addon.xml@@
# list all files, not directories: the files are the labels
dir /B /A-D 
Run Code Online (Sandbox Code Playgroud)