Доступ к переменным среды в спецификации конфигурации Clear Case
Можно ли получить доступ к переменным среды в спецификации конфигурации в clearcase.
У меня есть этот код:
element /folder/... /main/current_branch/LATEST
Я хочу настроить свою разработку так, чтобы я мог обновить ветку, просто установив некоторые envvars. Я бы хотел, чтобы что-то подобное заработало, возможно ли это?
element /folder/... /main/$current_branch/LATEST
где $current_branch должен возвращать текущий набор ветвей в этой переменной среды.
2 ответа
AFAIK, это невозможно.
То, как я это делаю, - это наличие шаблонов, которые я заполняю (автоматически). Но я также использую отдельные представления; Представления одноразовые, и я регулярно перестраиваю свои представления (каждую неделю, каждые пару недель, иногда несколько раз в день, если мне нужно быть уверенным в чистоте сборок).
Я бы показал вам свои сценарии, но их очень много, и они довольно сложно переплетены друг с другом и с имеющейся у нас рабочей средой (несколько, но перекрывающихся VOB для каждой из ряда основных версий ряда продукты, с некоторыми частями спецификации конфигурации, предоставленной CM, и пользовательскими преамбулами для определения того, над чем я работаю). Мы используем ClearCase около 18 лет.
В результате получается спецификация конфигурации для ветви исправления ошибок, которая выглядит следующим образом:
# @(#)$Id:243260.jleffler.toru.cs,v 1.1 2011/08/30 15:23:02 jleffler Exp $
#
# Config Spec for Bug 243260 - Blah, blah, blah, blah
element * CHECKEDOUT
element * .../TEMP.243260.jleffler/LATEST
mkbranch -override TEMP.243260.jleffler
#time 26-Jul-2009.00:00:00UTC-08:00
element /vobs/main_vob/... /main/LATEST
element /vobs/other_vob/... dist.1.00 -nocheckout
include /atria/cspecs/product/1.23/product-1.23.4
#include /atria/cspecs/product/1.16/product-1.16.8
element * /main/LATEST
Бит между закомментированной меткой времени и правилом всеохватывающей информации предоставляется CM. Бит над отметкой времени настраивается для ветви (TEMP.243260.jleffler - она идентифицирует ее как временную ветвь, исправление ошибки, для которого она предназначена, и кто выполняет работу). Шаблон на самом деле перечисляет около 10 различных настроек конфигурации от CM, и я просто удаляю те, которые не имеют отношения. Имя представления зависит от номера ошибки, моего логина и компьютера, на котором оно создано (toru
). Я замаскировал большинство остальных, но он основан на ошибке cspec, которую я создал ранее сегодня. мой bug.view
Сценарий взял номер ошибки, описание, путь к рабочему хранилищу представления и VOB, где мне нужно было создать ветку, и она ушла и автоматически все настроила. (И я все еще достаточно архаичен, чтобы использовать RCS, чтобы держать свои cspecs под контролем.)
Некоторые из моих взглядов длятся долго (по имени). Например, текущее справочное представление о выпуске будет существовать в течение более 5 лет, в течение которых выпуск будет поддерживаться. Он будет перестраиваться сотни раз за этот период, но имя останется прежним: prod-1.23-ref.jleffler.toru
, Таким образом, cspec для этого будет меняться со временем, так как требуется другая работа, но базовый cspec состоит из трех строк - CHECKEDOUT, включает стандартный файл конфигурации, предоставленный CM, и LATEST.
Нет, я никогда не видел спецификацию конфигурации, основанную на переменной среды.
Я посмотрел на справочную страницу config_spec, написание спецификации конфигурации и " Как работает спецификация конфигурации": ни одна из них не ссылается на такую возможность
Для динамического просмотра я видел сценарий, изменяющий спецификацию конфигурации динамически, на основе переменной среды, используяcleartool setcs
(так как обновление будет почти мгновенным с динамическим просмотром).
Примечание: не забывайте, что ваш current_branch
может не всегда происходить напрямую от /main
, Я предпочитаю использовать синтаксис:
element /folder/... .../my_branch/LATEST
для того, чтобы выбрать my_branch
вне зависимости от его прямой "родительской" ветви (хотя в базовой ClearCase нет реальной "родительской" ветви).