【问题标题】:How to get the contributing activity details on integration stream?如何获取有关集成流的贡献活动详细信息?
【发布时间】:2012-05-21 13:53:13
【问题描述】:

我需要帮助来了解如何获取特定贡献活动何时交付到集成流的详细信息。
我曾经在cleartool 中使用diffbl -activity baseline1 baseline2 来获取从一个基线到另一个基线的活动列表。

现在的新需求是我需要获取作为diffbl 的输出列出的某些活动的交付日期时间。
我尝试使用lsactdescribe,但出现“Activity not found”错误。
可能是因为我正在查询的活动是一项贡献活动。

有人可以知道如何获取贡献活动交付的日期时间,或者如何自定义“diffbl -activity baseline1 baseline2”的输出以获取活动日期时间详细信息吗?

【问题讨论】:

    标签: clearcase cleartool


    【解决方案1】:

    当我查看cleartool diffbl 手册页时,我没有看到任何格式化选项。

    这意味着您需要解析该命令的结果,将每个活动提供给cleartool describe -fmt,使用fmt_ccase option 之一来显示您想要的内容。

    This thread 让您了解要遵循的过程,但它是在 bash (unix) 中,如果您需要它可以适应 Windows:

    for act in $(ct diffbl -act bl1@/vobs/apvob bl2@/vobs/apvob | grep ">>" | grep -v "deliver." | cut -f2 -d " "); do echo "Activity: $act"; cleartool desc -fmt "%d\n" activity:$act; echo; done
    

    多行便于阅读:

    for act in $(ct diffbl -act bl1@/vobs/apvob bl2@/vobs/apvob 
      | grep ">>" 
      | grep -v "deliver." 
      | cut -f2 -d " "); 
      do 
        echo "Activity: $act"; cleartool desc -fmt "%d\n" activity:$act; echo; 
      done
    

    请注意,通过排除“deliver.”活动,我们只关注贡献活动,如“How to find files asssociated with a ClearCase UCM activity?”中所述。


    OP Lax 报告已成功提取活动名称,其中包含:

    desc -fmt "%Nd\n" "activity:myActivityId" 
    

    @\pvob 已经是diffbl 命令结果的一部分。Lax 只是从diffbl 结果中解析activityid 并将其放入desc 命令)

    他补充说:

    我在 C# 的上下文中需要它,因此解析就像解析任何其他字符串一样:我使用正则表达式将输出分隔到我感兴趣的活动中。例如:

    Regex.Matches(diffBlOutput, "myInterestedPattern"); 
    

    对于正则表达式结果中的每个匹配项,我都会使用

    RegexMatch.Groups["activity"].ToString()
    

    activityid 实际上是这个字符串的一个子字符串,因为结果总是“activtyid activityName”所以,substring(0,result.indexOf(' ')); 得到了我的活动 ID。

    【讨论】:

    • 感谢您的回复,我阅读了您的帮助并在 cleartool 中尝试了以下选项,但没有成功。如果我犯了任何错误,请告诉我。 Step1:- 命令:- cleartool> diffbl -activities 33.2.534.8111@\MYProject_PVOB 33.2.754.7570@\ MYProject PVOB 输出: 比较以下: 33.2.534.8111@\MYProject_PVOB 33.2.754.7570@\MYProject _PVOB区别:>> deliver.abcde_MYPACKAGE.20111116.152232@\cde_Components "deliver abc de_MYPACKAGE on 16.11.2011 15:22:32." >> Bugfix_ABCDClient@\CDE_Components "Bugfix ABCD Client" {在下一条评论中继续}
    • Step2:- 然后我尝试了以下方法来获取“Bugfix ABCDClient”的活动详情 Try 1:- cleartool> desc -fmt "%d\n" " Bugfix_ABCDClient@\CDE_Components @\MYProject _PVOB" cleartool: 错误: 无法访问 "Bugfix_ABCDClient@\CDE_Components @\ MYProject _PVOB": 没有这样的文件或目录。 Try2:- cleartool> desc -fmt "%d\n" "Bugfix_ABCDClient@\CDE_Components" cleartool: 错误: 无法访问 "Bugfix_ABCDClient@\CDE_Components" : 没有这样的文件或目录。如果我犯了任何错误,你能告诉我吗?
    • @user1402644 两个 cmets:1/ 对特定对象(如活动)的描述需要完全限定名称activity:anActivity@\apvob。 2/ 如果 'MyProject_PVob 是包含您的组件、流、项目和活动的 pvob,则描述应参考activity:deliver.abcde_MYPACKAGE.20111116.152232@\MyProject_PVob。但是如果CDE_Components也是一个pvob,那么是的,完全限定名称将是activity:deliver.abcde_MYPACKAGE.20111116.152232@\CDE_Components
    • 感谢您的帮助,这是我的工作。由于 15 点限制,我无法投票:)。但是,竖起大拇指!!!
    • @Lax:很高兴为您提供帮助。您能否在评论中发布您使用的最终命令?我会将它们添加到答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 2016-05-17
    • 2020-07-12
    相关资源
    最近更新 更多