【问题标题】:How do I write a ClearCase trigger that launches a batch script?如何编写启动批处理脚本的 ClearCase 触发器?
【发布时间】:2017-05-04 23:51:32
【问题描述】:

对于 ClearCase 触发器,我是一个非常新手,但我非常习惯使用 ClearCase。

我想编写一个触发器,当用户签入文件并启动 ClearCase 服务器上的批处理脚本时将触发该触发器。我假设触发器会以某种方式为我提供正在使用的活动的 ID 和作为参数的流,所以我需要学习如何使用这些。

在哪里可以找到教程?我找到了一些文档,但它并没有真正帮助我。我需要一份关于编程(带有代码示例)和设置的分步指南。

谢谢!

安德鲁

【问题讨论】:

    标签: triggers clearcase


    【解决方案1】:

    这是一个postop checkin触发器,你可以在“IBM Rational ClearCase: The ten best triggers”页面看到其中的一些:

    cleartool mktrtype -c "Trigger to check the checkin" -element -all -postop checkin -execwin "ccperl \\server\triggers\check_checkin.bat" -execunix "Perl /net/server/triggers/check_checkin.pl" CHECK_CHECKIN
    

    您可以在“mktrtype”页面中查看可以在由触发器启动的脚本中使用的所有环境变量。
    它包括:

    • CLEARCASE_ACTIVITY:UCM 活动(如果适用)涉及导致触发器触发的操作。
      对于签入、签出和取消签出操作,在用于操作的视图中设置的活动。
    • CLEARCASE_STREAM:UCM 流包含导致触发器触发的操作所涉及的对象(如果适用)。

    注意:OP Andrewmentions 表示:

    CLEARCASE_STREAM EV 仅对所有deliverrebasemkbl 操作有效; mkactivitychactivityrmactivitysetactivitymkstreamchstreamrmstreamchblrmbl 操作。
    通过checkin 操作,它返回NULL

    在这种情况下,您可以使用CLEARCASE_VIEW_TAG EV 来获取流名称:

     # Windows Syntax
    cleartool lsstream -view %CLEARCASE_VIEW_TAG%
     # Unix Syntax
    cleartool lsstream -view $CLEARCASE_VIEW_TAG
    

    【讨论】:

    • 感谢您的链接,我会看看。据我了解,触发器将在通过 CCRC 执行签入的 PC 上触发,而不是在 ClearCase 服务器上触发,这就是为什么您必须将 \\server 路径放入触发器的原因。这个对吗?另外,如果我有"ccperl \\server\triggers\check_checkin.bat",那会直接运行批处理文件吗?在您发送的网站上的所有示例中,即使指定了 .bat,也始终有一个 perl 脚本。
    • @Andrew 等等,你在使用 CCRC 吗? cleartool mktrtype 仅适用于完整的 ClearCase 安装。 \\server 的想法是:脚本可以在任何地方,只要它是可从 ClearCase 服务器访问的路径。该脚本将在 ClearCase 服务器上执行,即使它可能驻留在其他地方。如果您自己执行 ccperl,您将不会拥有我提到的正确设置的环境变量。
    • 这个想法是一旦用户通过 CCRC 执行签入,就会在服务器上触发触发器。我希望它运行一个以环境变量为参数的批处理文件。
    • @Andrew 所以你应该在 ClearCase 服务器上定义你的触发器。 Agan,该脚本可以存储在任何地方,只要服务器可以访问它。它将在服务器上执行。
    • 我正在尝试做一个非常简单的触发器测试,将触发器分配给流cleartool mktrtype -element -postop checkin -execwin "\\server\folder\test.bat" -stream <stream>@\<vob> -nc TRIGGERTEST,但我收到错误Error: Object is in unexpected VOB: "<stream>@\<vob>". 我从视图内部运行命令。我应该在哪里运行命令?
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-10
      • 2018-11-06
      • 2010-11-22
      • 2016-08-10
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 2012-10-25
      相关资源
      最近更新 更多