Можно ли использовать переменные в спецификации конфигурации ClearCase?

Например, вместо того, чтобы писать следующее:

element * .../my_branch_01/LATEST
element * .../base_branch/LATEST -mkbranch my_branch_01

Я хотел бы написать что-то вроде этого:

MY_BRANCH=my_branch_01
element * .../%MY_BRANCH%/LATEST
element * .../base_branch/LATEST -mkbranch %MY_BRANCH%

Это вообще возможно? Какой правильный синтаксис?

2 ответа

Решение

Единственный родной способ сделать это в ClearCase - это использовать атрибут в config-spec.

В соответствии с правилами выбора версий вы можете создать правило "выбор по запросу", например, на основе атрибута:

element * ...{MY_ATTRIBUTE_NAME=="aValue"}

выбрал бы LATEST версия на любой ветке с атрибутом 'MY_ATTRIBUTE_NAME' с 'aValue' в этом.

Это означает, что вам нужно изменить значение атрибута в старой ветке, поместить его в новую ветку, 'cleartool setcs"Ваш взгляд снова, и у вас должен быть новый контент, основанный на выборе новой версии.

Не очень прямолинейно, но это может сработать, за исключением части mkbranch (которая требует фиксированного имени).


Относительно ответа GeekCyclist, несколько комментариев:

Решение, включающее общую конфигурационную спецификацию, может работать для решения Base ClearCase, но:

  • должен быть доступен для всех заинтересованных разработчиков
  • setcs действительно необходим для Ccuses view_server, чтобы очистить его кэши и пересмотреть текущую конфигурационную спецификацию, которая хранится в файле config_spec в каталоге хранилища представления. Это включает:
    • Оценка правил времени с неабсолютными спецификациями (например, сейчас, вторник)
    • Переоценка - настройка правил, возможно, выбор других производных объектов, чем ранее
    • Перечитывание файлов с именами в правилах включения
  • все остальные разработчики должны быть уведомлены об изменении общего включенного файла спецификации конфигурации (в ClearCase нет встроенного уведомления)

Если вам нужно иметь одно "окружение" (то есть одно "представление" или рабочее пространство) с переменным содержимым (в зависимости от другой ветви), вам нужно определить символическую ссылку (или подстилку Windows), указывающую на разные представления (каждое с их собственная спецификация конфигурации)

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

Прошло много времени с тех пор, как я работал в ClearCase (мы переключились на Subversion), но, если я правильно помню, нет способа сделать это нативным для ClearCase.

Вы можете использовать или написать генератор сценариев, который создаст ваш файл спецификации и затем включит его в фактическую спецификацию:

element * CHECKEDOUT
include scripted_file_output

Тогда беги

cleartool setcs -current

Проблема с этим подходом состоит в том, что я считаю, что спецификацию include необходимо будет перегенерировать, и setcs cleartool запускается всякий раз, когда вы меняете значение MY_BRANCH.

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