如何通过给定的clearcase流(窗口)获取pvob名称?

时间:2016-03-11 10:08:08

标签: windows clearcase clearcase-ucm

让我们说用户提出请求:

  

我无法提供表单流" spider_dev"

该用户也没有提到视图名称。

如何获取PVOB名称?
我们的ClearCase环境太大(大约300个vobs)。每一个vob和检查都很困难。

3 个答案:

答案 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 streamcleartool 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的名称。