2014-03-19 97 views
1

有關ClearCase的另一個問題...

我們在UCM項目中有大約30位開發人員在世界各地工作。他們都可以在項目的不同組件中創建基線。

爲了使基線具有共同的命名,我們爲基線定義了命名方案。它可以用正則表達式表示。現在我們想檢查一下要用這個正則表達式創建的基線名稱 - 因爲命名約定可能不錯,但是如果你不強制執行它們,則不必定義它們。

正則表達式是太複雜,與基線命名模板強化UCM基線的命名約定

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


我試圖定義一個術前觸發的mkbl但發現,在術前觸發這是不可能的訪問進行處理要創建的基準名 - 至少不是如果命令是使用GUI執行的,則可以從命令行解析命令,但老實說這不是我想要做的,我不想讓用戶使用命令線。

所以目前唯一可以考慮強制執行命名約定的方法是爲mkbl定義一個postop觸發器(只要基線名稱可用,那麼我還沒有嘗試過)設置如果命名約定被破壞,基線就會過時。但說實話,這聽起來不太合適......

那麼是否有一種方法可以在UCM ClearCase中強制執行基準命名約定 - 而不會導致大量過時的基準?

感謝您的閱讀!

回答

0

不容易的,如在this thread描述:

的CLEARCASE_BASELINES環境變量不可用preop mkbaseline觸發器。
這是因爲該值設置爲創建的數據庫對象的名稱,可能與命令行上給出的名稱不完全匹配(如果mkbaseline命令針對多個組件運行,則該名稱尤其如此)。

如果不使用GUI,則可以從CLEARCASE_CMDLINE環境變量中分析基線名稱,該變量在命令行操作觸發觸發器時可用。

如果您需要在GUI中執行此操作,恐怕目前唯一的解決方案將是自定義CC包裝腳本/可執行文件。

因此請檢查CLEARCASE_CMDLINE包含哪些內容,以便您檢查名稱。

+0

感謝您的回答。我也找到了這個線程。但不幸的是,「我怎樣才能做自定義CC封裝腳本/可執行文件?」從未回答。正如我所說我不想限制用戶到命令行,他們應該被允許使用GUI(然後CLEARCASE_CMDLINE不可用)。 – user2606240