给定文件的标签我知道这个TAKS一个尴尬的解决方案将是:如何找到所有在ClearCase中
- 第一次使用
ct ls
获取文件 - 和管道的整个版本信息版本信息到解析脚本以实际获取文件的标签。
但我猜ClearCase应该有一个“内置”解决方案来完成这项任务,不需要任何外部脚本的支持。
如果您碰巧知道该任务的“内置”解决方案,请帮助我。
在此先感谢。
给定文件的标签我知道这个TAKS一个尴尬的解决方案将是:如何找到所有在ClearCase中
ct ls
获取文件但我猜ClearCase应该有一个“内置”解决方案来完成这项任务,不需要任何外部脚本的支持。
如果您碰巧知道该任务的“内置”解决方案,请帮助我。
在此先感谢。
fmt_ccase
包含各种ClearCase元素的所有格式字符串。
对于一个版本的文件,您可以:
cleartool descr -fmt "%l\n" /path/to/a/version
%l
标签:对于版本中,所有贴有标签;否则为空字符串。
标签以逗号分隔的列表形式输出,用圆括号括起来。
A<SPACE>
字符跟随每个逗号。变体:
%Cl
最大标签:指定标签的最大数目与最大场宽度参数(见Specifying field width)来显示。
如果有更多标签,则将“...
”附加到输出。
如果没有指定最大场宽度,最大缺省值是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
onaclov2000增加(从评论):
唯一的问题是,您正在抓取文件特定版本的标签。
鉴于分支等可以存在,我们需要能够获得文件上的所有标签。
如果您使用版本树图形并选择工具 - >“定位”,您可以看到全部附加到该文件的标签。
在cleartool中是否有一个共同的命令会返回“locate”或“contents”的结果?
的lsvtree
(图形版本树)确实显示当前由图中看到的元素的所有版本的标签,当你点击“标签名称”
话虽这么说,似乎没有要一个“内置”的解决方案和一些分析涉及:
例如(这是比OP短版位,但仍然基于一个cleartool ls
):
ct ls -l [email protected]@|grep version|gawk "{gsub(/^version.*@@\\\\/,\"\",$0) ; gsub(/ \ [.*/,\"\",$0); print $0}"
(的GnuWin32语法)
,或者只能用动态的观点:
cd m:/myView/path/to/[email protected]@
# list all files, not directories: the files are the labels
dir /B /A-D
唯一的问题是你抓取特定版本的文件上的标签,考虑到分支等可以存在,我们需要能够获得文件上的所有标签,如果你使用版本树图形和选择工具 - >“定位”你可以看到所有的标签附加到该文件,有一个共同的命令在cleartool将返回“定位”,或“内容”的结果? – onaclov2000 2010-03-24 13:26:59
@ onaclov2000:不确定关于downvote,但我已扩展我的答案以解决“列出所有标签”查询。 – VonC 2010-03-24 14:10:57
由于您的更新,我向您投票赞成!对不起,它不会早点来临,我在谷歌搜索过程中再次遇到这个问题 – onaclov2000 2011-02-17 15:33:18
IBM的文章 “Additional examples of the cleartool find command” 是查找查询的重要来源。
为了扩大对VonC在his answer提到的 “lsvtree
” 一下,您有:
要找到任何标签所有元素:
的Windows:
cleartool find . -type f -exec "cleartool lsvtree -a %CLEARCASE_PN%" | findstr
"("
./[email protected]@/main/1 (LABEL100, LABEL99, LABEL98, LABEL97)
./[email protected]@/main/BR1/1 (REL2)
./[email protected]@/main/1 (REL1)
UNIX/Linux的:
cleartool find . -type f -exec 'cleartool lsvtree -a $CLEARCASE_PN' | grep "("
./[email protected]@/main/1 (LABEL100, LABEL99, LABEL98, LABEL97)
./[email protected]@/main/BR1/1 (REL2)
./[email protected]@/main/1 (REL1)
即发现只为当前视图中选定的版本标签,但你可以重用lsvtree
部分到grep带标签文件的所有版本。
我冒昧地在您的初始链接上进行了扩展。 StackOverflow是一个问答网站,旨在尽可能多地在每个答案中包含尽可能多的信息,以便限制其对外部来源的依赖性(例如,此链接可能会在任何时候被更改/更改)。 +1 btw。 – VonC 2011-01-20 11:29:54
@海源:刚刚完成我的答案列表*所有*文件的标签。我恐怕没有“内置”解决方案。 – VonC 2010-03-24 14:13:02