实施UCM基线的命名约定

时间:2014-03-19 09:27:31

标签: clearcase clearcase-ucm cleartool

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

我们在UCM项目中有大约30名全球开发人员。所有这些都可以在项目的不同组成部分中创建基线。

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

正则表达式太复杂,无法使用基线命名模板

进行处理
(DEV|REV)[0-9]+_PartOfComponentName_.*


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

所以目前我能想到的唯一可能是强制执行命名约定的方法是为mkbl定义一个postop触发器(如果基线名称可用,我还没有尝试)将基线设置为过时如果命名约定被破坏。但老实说,这对我来说听起来不合适...

那么有没有办法在UCM ClearCase中强制执行基线的命名约定 - 而不会产生大量过时的基线?

谢谢你的阅读!

1 个答案:

答案 0 :(得分:0)

不容易,如this thread

中所述
  

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

     

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

     

如果您需要在GUI中执行此操作,我担心此时唯一的解决方案是自定义CC包装器脚本/可执行文件。

请检查CLEARCASE_CMDLINE包含的内容,以便检查姓名。