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

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

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 ]

3 голосов
/ 25 марта 2009

Единственный собственный способ сделать это в 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 в каталоге хранилища представления. Это включает:
    • Оценка правил времени с неабсолютными спецификациями (например, сейчас, вторник)
    • Переоценка - настройка правил, возможно, выбор других производных объектов, чем ранее
    • Перечитывание файлов, названных в include-правилах
  • все другие разработчики должны получать уведомления при изменении общего включенного конфигурационного файла конфигурации (в ClearCase нет встроенного уведомления)

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

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

1 голос
/ 25 марта 2009

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

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

element * CHECKEDOUT
include scripted_file_output

Затем запустите

cleartool setcs -current

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...