2010-06-16 3 views
2

В спецификации конфигурации ClearCase можно выбрать версии на основе элемента attributres (не версии)? Например:Выбор спецификации конфигурации ClearCase на основе атрибута элемента

element * ...{SOME_ELEM_ATTR==SOME_VALUE&&lbtype(MY_LABEL1)} 

Это не работает, потому что последняя часть спецификации «элемент» является версия селектор, который смотрит только на версии атрибутов.

То, что я пытаюсь сделать, это разбить мои файлы на два или более класса и использовать разные строки «element» для разных классов файлов. Я попробовал пометить все элементы в одном классе с помощью атрибута, но поразил тупик, пытаясь основать выбор на этом в спецификации конфигурации. Единственный способ, которым я могу видеть, чтобы делать такого рода вещи, чтобы поместить все файлы из одного класса в одном месте и использовать вторую конструкцию («Растр») дифференцировать:

element .../all_class1_files/... MY_LABEL1 

, но это действительно некрасиво потому что вы должны перенести все файлы одного класса в одно место или иметь спецификацию гигантских конфигураций, в которой перечислены все отдельные каталоги и/или файлы.

Заранее спасибо ...

Ray

ответ

0

Одним из первых решений было бы заменить критерии атрибутов ветвью.
Таким образом, вы с легкостью сможете пометить все файлы из одной ветви или другой, а не «все файлы с заданным атрибутом».

Кроме этого обходного пути вы найдете find command based on attribute here (или в man page).
Затем вы можете объединить find query с директивой "-exec", чтобы поместить ярлык, который вы хотите.
Таким образом, вам не нужно связываться с config spec syntax (что может не поддерживать точные критерии выбора, которые вы после этого).


Я не проверял, но вы можете попробовать

element * ...{SOME_ELEM_ATTR==SOME_VALUE && lbtype_sub(MY_LABEL1)} 

, потому что lbtype_sub является элементом, ветви и версия селектор (а lbtype только селектор версии).
Однако, поскольку lbtype, похоже, не является частью критериев конфигурации конфигурации, я сомневаюсь, что он может работать в указанной конфигурации конфигурации.

+0

Спасибо, я ценю вашу помощь, VonC. Выбор по ветке будет работать, но это сложно из-за большого количества задействованных ветвей.Использование «find» для пометки файлов не является жизнеспособным вариантом, потому что это нужно делать каждый раз, когда создается версия. Но я думаю, что я могу найти хорошее решение, используя функцию запроса «trtype». –

+0

@Ray: интересно. Если у вас есть жизнеспособное решение, вы можете опубликовать его здесь (и выберите его как официальное решение, если хотите) – VonC

0

Я думаю, что у меня есть хорошее решение, использующее «trtype» в качестве критерия выбора (представляется единственной функцией запроса, которая наследует от элемента к версии). Если элементы class1 и class2 имеют фиктивные триггеры Class1Files andClass2Files, прикрепленные к ним, соответственно, а затем что-то вроде

element * .../{trtype(Class1Files)&&lbtype(MY_LABEL1)} 
element * .../{trtype(Class2Files)&&lbtype(MY_LABEL2)} 

должен сделать трюк. Это выбирает файлы в Class1 с MY_LABEL1 и в Class2 с MY_LABEL2. Я еще не пробовал это, но я дам вам знать, как это получается.

Смежные вопросы