关于ClearCase的另一个问题...
我们在UCM项目中有大约30名全球开发人员。所有这些都可以在项目的不同组成部分中创建基线。
为了对基线进行通用命名,我们为基线定义了命名方案。它可以用正则表达式表达。现在我们要检查要针对此正则表达式创建的基线的名称 - 因为命名约定可能很好,但如果您不强制执行它们,则不必定义它们。
正则表达式太复杂,无法使用基线命名模板
(DEV|REV)[0-9]+_PartOfComponentName_.*
我试图为mkbl定义一个preop-trigger但是发现在preop触发器中它不可能访问要创建的基线名称 - 至少不是如果命令是使用GUI执行的,从我可以解析的命令行命令,但说实话,这不是我想做的事情,我不想让用户使用命令行。
所以目前我能想到的唯一可能是强制执行命名约定的方法是为mkbl定义一个postop触发器(如果基线名称可用,我还没有尝试)将基线设置为过时如果命名约定被破坏。但老实说,这对我来说听起来不合适...
那么有没有办法在UCM ClearCase中强制执行基线的命名约定 - 而不会产生大量过时的基线?
谢谢你的阅读!
答案 0 :(得分:0)
不容易,如this thread:
中所述
preop mkbaseline
触发器无法使用CLEARCASE_BASELINES环境变量 这是因为该值设置为创建的数据库对象的名称,这可能与命令行上给出的名称不完全匹配(如果针对多个组件运行mkbaseline命令,则尤其如此)。如果您没有使用GUI,则可以从
CLEARCASE_CMDLINE
环境变量中解析基线名称,该变量在命令行操作触发触发器时可用。如果您需要在GUI中执行此操作,我担心此时唯一的解决方案是自定义CC包装器脚本/可执行文件。
请检查CLEARCASE_CMDLINE
包含的内容,以便检查姓名。