如何在Base clearcase VOB中复制标签的内容?

时间:2015-03-12 14:30:39

标签: clearcase clearcase-ucm cleartool

我们想要Base Clearcase VOB的所有标签内容。 我为VOB创建了一个View,并将 config.spec 文档编辑为

element * checkedout
element * label_ID
element * /main/latest

但它带来了与VOB相关的所有组件,而不是标签。

如何选择标有label_ID的元素?

2 个答案:

答案 0 :(得分:1)

如果标签已在vob本身和所有元素上设置(例如:/<vobtab>/dir1/<vobtab>/dir1/dir2//<vobtab>/dir1/dir2/*),以下配置规范只会带来标记的元素,而不是其他的vob元素:

element * checkedout
element * label_ID
element * -none

但是如果已在/<vobtab>/dir1/dir2/*而不是 /<vobtab>/dir1/(父文件夹本身)内的所有元素上设置了label_ID,或者/<vobtab>/上没有设置label_ID( vob本身的根文件夹),然后该配置规范根本不会带来任何元素 解决方法是选择父元素:

element * checkedout
element * label_ID
element /<vob_tag>/dir1 /main/LATEST
element /<vob_tag> /main/LATEST
element * -none

我建议在动态视图中执行此操作(可以在每次配置规范修改后快速刷新),而不是快照视图(必须在每个setcs之后重新加载)


另一种方法,不是基于配置规范(因为要访问标记元素可能很难选择正确的父文件夹)是使用cleartool find查询。
参见:

基本上,您可以列出仅通过进入您的“动态”视图并执行以下操作来标记

  

UNIX和Linux:

cleartool find -cview -element '{lbtype_sub(REL1)}' -print
  

视窗:

cleartool find -cview -element "{lbtype_sub(REL1)}" -print

您可以使用-print而不是使用-exec "a command",并使用exec选项执行任何命令,例如复制刚刚找到的内容:

cleartool find -cview -element "{lbtype_sub(REL1)}" -exec "copy \"%CLEARCASE_PN%\" c:\a\path"

cleartool find . –version "lbtype(LB_TYPE)"

如果命令过于挑剔,只需将结果重定向到文件:

cleartool find -cview -element "{lbtype_sub(REL1)}" -print > file.txt

然后处理该文件以复制其内容,如&#34; Batch: Copy a list (txt) of files&#34;:

@echo off
set src_folder=c:\whatever
set dst_folder=c:\target
for /f "tokens=*" %%i in (File-list.txt) DO (
    xcopy /S/E/U "%src_folder%\%%i" "%dst_folder%"
)

答案 1 :(得分:1)

如果你不介意看到一堆空目录,你可以这样做:

element * CHECKEDOUT
element -file * label_ID
element -directory * /main/LATEST

这将返回每个文件夹的LATEST或CHECKEDOUT版本,但除非已标记或CHECKEDOUT

否则不会显示文件

查看the config_specs reference page - 您可以使用配置规范进行大量工作(例如,如果您只需要MSWord文档,则可以这样做“element -file * .doc / main / LATEST”)< / p>