让我们说用户提出请求:
我无法提供表单流"
spider_dev
"
该用户也没有提到视图名称。
如何获取PVOB名称?
我们的ClearCase环境太大(大约300个vobs)。每一个vob和检查都很困难。
答案 0 :(得分:2)
假设您仅提供了流名称"spider_dev"
而没有提供任何其他内容。在让开发人员不帮助我帮助他之后,请考虑以下命令来循环通过vobs并找到流(我没有在多站点工作,所以YMMV,也标记为Windows,因此转换为PowerShell / DOSShell req' d):
MY_STREAM=spider_dev # the stream you're looking for
获取所有vob的列表:
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个v /,4000个分支,并编写了许多小工具,以帮助我们处理许多类似的问题,所以感受到你的痛苦。
最后,提醒用户下次有更多详细信息时会提供更多详细信息,并在提供的详细信息较少时花费更长时间。
答案 1 :(得分:1)
一种可能性是查找以流
命名的任何视图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)。
答案 2 :(得分:1)
如果您只有示例中提供的信息,那么这是不太可能的。理想情况下,用户应以下列格式提供流的名称
stream:<stream-name>@<pvob>
这是强制性的,因为在另一个PVOB中可能有另一个名为“spider_dev”的流。
如果用户不知道他的PVOB(可能发生),您应该尝试获取源VOB的名称,即包含源代码的VOB。如果您设法获取源VOB的名称,则只需使用“cleartool desc”命令即可。通常,命令
cleartool desc -l vob:<source-vob-tag>
将列出大量信息,包括VOB与PVOB的超链接。这就是你如何获得PVOB的名称。