【问题标题】:Enforce naming convention for UCM baselines强制 UCM 基线的命名约定
【发布时间】:2014-03-19 09:27:31
【问题描述】:

关于 ClearCase 的另一个问题...

我们在全球范围内有大约 30 名开发人员在我们的 UCM 项目中工作。他们都可以在项目的不同组件中创建基线。

为了对基线进行通用命名,我们为基线定义了一个命名方案。可以用正则表达式来表示。现在我们想对照这个正则表达式检查要创建的基线的名称 - 因为命名约定可能很好,但如果您不强制执行它们,则不必定义它们。

正则表达式过于复杂,无法使用基线命名模板处理

(DEV|REV)[0-9]+_PartOfComponentName_.*


我试图为 mkbl 定义一个 preop 触发器,但发现在 preop 触发器中无法访问要创建的基线名称 - 至少如果命令是使用 GUI 执行的,我可以从命令行解析命令,但老实说,这不是我想做的,我不想让用户使用命令行。

因此,目前我能想到强制执行命名约定的唯一可能性是为 mkbl 定义一个 postop 触发器,并且(就基线名称而言,我还没有尝试过)将基线设置为过时如果违反了命名约定。但老实说,这对我来说听起来不对...

那么有没有一种方法可以在 UCM ClearCase 中强制执行基线的命名约定 - 而不会导致大量过时的基线?

感谢阅读!

【问题讨论】:

    标签: clearcase clearcase-ucm cleartool


    【解决方案1】:

    不容易,如this thread中所述:

    CLEARCASE_BASELINES 环境变量不适用于preop mkbaseline 触发器。
    这是因为该值设置为创建的数据库对象的名称,这可能与命令行上给出的名称不完全匹配(如果 mkbaseline 命令针对多个组件运行,则尤其如此)。

    如果您不使用 GUI,则可以从 CLEARCASE_CMDLINE 环境变量中解析基线名称,该变量在命令行操作触发触发器时可用。

    如果您需要在 GUI 中执行此操作,恐怕目前唯一的解决方案是自定义 CC 包装脚本/可执行文件。

    所以请检查CLEARCASE_CMDLINE 包含的内容,以便您检查名称。

    【讨论】:

    • 感谢您的回答。我也找到了这个线程。但不幸的是,问题“我怎样才能做自定义 CC 包装脚本/可执行文件?”从未得到答复。正如我所说,我不想将用户限制在命令行中,应该允许他们使用 GUI(然后 CLEARCASE_CMDLINE 不可用)。
    猜你喜欢
    • 2011-01-24
    • 2012-04-24
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2014-12-18
    相关资源
    最近更新 更多