【发布时间】:2016-03-11 10:08:08
【问题描述】:
假设用户提出请求:
我无法传递表单流“
spider_dev”
该用户也没有提及视图名称。
如何获得 PVOB 名称?
我们的 ClearCase 环境太大(大约 300 个 vobs)。去每一个vob和检查是非常困难的。
【问题讨论】:
标签: windows clearcase clearcase-ucm
假设用户提出请求:
我无法传递表单流“
spider_dev”
该用户也没有提及视图名称。
如何获得 PVOB 名称?
我们的 ClearCase 环境太大(大约 300 个 vobs)。去每一个vob和检查是非常困难的。
【问题讨论】:
标签: windows clearcase clearcase-ucm
假设您只提供了流名称"spider_dev",没有其他信息。在羞辱开发人员没有帮助我帮助他之后,考虑使用以下命令循环遍历 vobs 并定位流(我没有在多站点工作,所以 YMMV,也标记为 Windows,所以转换为 PowerShell/DOSShell req' d):
MY_STREAM=spider_dev # the stream you're looking for
获取所有 vobs 的列表:
VOB_LIST=$(cleartool lsvob| grep ucmvob| cut -c3-| awk '{print $1}')
# list all vobs, match ucmvob, chop the active indicator (*), print the value
循环浏览 vobs 以找到匹配的开发流:
MY_STREAM=spider_dev # the stream you're looking for
for vob in ${VOB_LIST}; do
for stream in $(cleartool lsproject -obs -fmt "%[dstreams]p\n" -inv ${vob}); do
if [[ ${stream} == ${MY_STREAM} ]]; then
echo "!!! ${stream}@${vob}"
break
fi
done
done
既然您知道流在哪里,请查找交付状态:
cleartool deliver -status -stream ${stream}@${vob}
结果将是以下形式:
Deliver operation in progress on stream "stream:spider_dev@/vobs/my_pvob"
Started by "username" on "2016-03-15T12:34:56Z"
Using integration activity "deliver.activity".
Using view "user_view".
Activities will be delivered to the default target stream stream:spider_int@/vobs/my_pvob"
in project "project:spider@/vobs/my_pvob".
Baselines to be delivered:
您当然可以根据需要将其包装成 shell 命令、函数、批处理脚本等。我们有大约 250 个带有 4000 个分支的 vobs,并且编写了许多小实用程序来帮助我们管理许多类似的问题,所以请感受一下您的痛苦。
最后,提醒用户下次提供更多详细信息时,帮助会更及时,而在提供的详细信息较少时,需要的时间会非常长。
【讨论】:
一种可能性是查找以流命名的任何视图
cleartool lsview|grep -i spider_dev
(grep is available for Windows,或gow: Gnu On Windows的一部分)
如果这些视图也以用户登录名命名,您可以进一步细化搜索。
获得视图后,you have its stream 和 cleartool lsstream:
cleartool lsstream -l -view view_tag -anc
这应该包括其 UCM 项目的扩展名称(及其 pvob)。
【讨论】:
cleartool lsregion (ibm.com/support/knowledgecenter/SSSH27_8.0.1/…) 然后写一个cleartool lsview -region <theOtherRegion>吗? (ibm.com/support/knowledgecenter/SSSH27_7.1.2/…)
如果您只有示例中提供的信息,这不太可能。理想情况下,用户应按以下格式提供流的名称
stream:<stream-name>@<pvob>
这是强制性的,因为在另一个 PVOB 中可能有另一个名为“spider_dev”的流。
如果用户不知道他的 PVOB(这可能发生),您应该尝试获取源 VOB 的名称,即包含源代码的 VOB。如果您设法获得源 VOB 的名称,您可以简单地使用“cleartool desc”命令。通常,命令
cleartool desc -l vob:<source-vob-tag>
会列出很多信息,包括VOB与其PVOB的超链接。这就是您获取 PVOB 名称的方式。
【讨论】: