Выбор спецификации конфигурации ClearCase на основе атрибута элемента

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

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

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

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

element .../all_class1_files/... MY_LABEL1

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

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

луч

2 ответа

Я думаю, что у меня есть хорошее решение, использующее "trtype" в качестве критерия выбора (кажется, единственная функция запроса, которая наследует от элемента к версии). Если к элементам Class1 и Class2 прикреплены фиктивные триггеры Class1Files и Class2Files, соответственно, то что-то вроде

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

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

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

Помимо этого обходного пути, вы найдете некоторые find команда на основе атрибута здесь (или на странице руководства).
Вы могли бы тогда объединить find запрос с " -exec Директива поставить ярлык, который вы хотите.
Таким образом, вам не нужно связываться с синтаксисом спецификации конфигурации (который может не поддерживать точные критерии выбора, которые вам нужны).


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

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

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

Другие вопросы по тегам