Как найти корневую [папку] для каждого компонента, используя cleartool? - PullRequest
1 голос
/ 07 января 2012

Как найти корневую папку, с которой связан компонент?

Я могу найти его вручную через проводник проекта -> Компоненты-> Свойства

Как это сделать с помощью команды cleartool. Мне это нужно, так как мне нужно создать конфигурационную спецификацию, которую можно применить в базовом представлении в открытом виде и просмотреть содержимое представления UCM.

1 Ответ

1 голос
/ 07 января 2012

Просмотрите параметры "Формат строки для вывода команды" (fmt_ccase) :

 cleartool descr -fmt "%[root_dir]p" component:aComponent@\aPVob

Вы можете получить этот путь в корневой каталог (обычно \aVob для «компонента vob» или «\aVob\aRootDir» для компонентов внутри Vob).


Оттуда для управления доступом к определенным базовым показателям компонентов UCM в представлениях не-UCM вы можете следовать подходу, аналогичному " Слияние из проекта в филиал не-UCM"в скрипте perl (сделано для слияния, но вы можете адаптировать его, чтобы создать спецификацию конфигурации для указанного представления без UCM):

Этот скрипт ниже для проектов, в которых используются рекомендуемые базовые показатели, и приведен в качестве примера использования "%[root_dir]p".
Если вы не используете рекомендуемые базовые показатели, вы просто перечислите все компоненты для данного потока:
cleartool descr -fmt "%[components]CXp" stream:aStream@\aPVob

print("######## Getting recommended baselines for project 
'$project'\n");
my @recbls = split(' ', ‘cleartool lsproject -fmt "%[rec_bls]p" 
$project‘);

foreach $bl (@recbls) {

    my $comp = ‘cleartool lsbl -fmt "%[component]p" $bl‘;
    my $vob = ‘cleartool lscomp -fmt "%[root_dir]p" $comp‘;

    #... build your config spec there
}
# call cleartool setsc there

Затем вы сгенерируете (и примените к спецификации конфигурации) файл, похожий на ваш другой вопрос " Спецификация конфигурации Clearcase ведет себя странно при использовании setcs command ".


ОП сообщает, что этот подход работает, используя Powershell:
(у него изначально были проблемы с моим примером, скопированным с сайта IBM, где дефисы-минус '-' заменены не-ASCII минус '':, '- vs. –: -–': см. " Что такое самая трудная ошибка, которую вы когда-либо находили и исправляли?"):

$project="MyComponents@\My_PVOB" 
$pvob="@\My_PVOB" 
$Baselines=(cleartool lsproject -fmt "%[rec_bls]p" $project).split() 
foreach ($bl in $Baselines) { 
  $comp=cleartool lsbl -fmt "%[component]p" $bl"$pvob" 
  $vob = cleartool lscomp -fmt "%[root_dir]p" $comp"$pvob" 
}
...