Перечислите последний базовый уровень компонента в потоке UCM один за другим

Мне нужно перечислить последний базовый уровень для каждого компонента в потоке UCM в прозрачном регистре один за другим. Я знаю об опции "%[latest_bls]p", используемой с -fmt. Проблема в том, что в нем перечислены все последние базовые показатели для всех компонентов вместе.

Что мне нужно, так это, учитывая имя компонента C и имя потока S, отобразить последнюю базовую линию для компонента C в потоке S.

Спасибо за вашу помощь.


person Pulak Agrawal    schedule 15.11.2011    source источник


Ответы (2)


Если принять во внимание fmt_ccase, %[latest_bls]CXp всегда будет отображать последние базовые показатели для всех компонентов данного потока.

Поэтому лучше всего проанализировать результат и для каждого базового имени отобразить имя его компонента:

cleartool describe -fmt "%[component]Xp" aBaselineName@/aPVob

Также:

%[latest_bls]CXp кажется единственным способом напрямую получить последний базовый план, и он всегда доступен для всех компонентов.
Вы также можете вывести список всех базовых показателей для данный компонент и поток:

 cleartool lsbl -comp C -stream S

, и выберите последний.
Это должно больше соответствовать тому, что вы хотите (т.е. используйте только ваши 6 имен компонентов вместо всего этого синтаксического анализа/сборки)

person VonC    schedule 15.11.2011
comment
Хорошо.. это будет означать для меня некоторые грязные дела, где я сначала получу 10 базовых показателей, затем получу имена 10 компонентов путем анализа, затем отфильтрую до шести компонентов и обратно, чтобы подобрать соответствующие шесть базовых показателей. Я бы предпочел просто перечислить последние базовые показатели для данного компонента в потоке. Таким образом, мой список из шести жестко закодированных компонентов дал бы мне ответ. - person Pulak Agrawal; 15.11.2011
comment
Что меня интересует, так это то, почему ответ Тамира не работает для меня, поскольку я вижу, что опции -l и -s работают, что заставляет меня поверить, что -fmt также должен работать, поскольку он просто переупорядочивает вывод -l для данная команда cleartool. - person Pulak Agrawal; 15.11.2011
comment
@PulakAgrawal: Я понимаю, но %[latest_bls]CXp кажется единственным способом напрямую получить последние базовые показатели, и это всегда для всех компонентов. Что вы можете сделать, так это перечислить все базовые показатели для данного компонента и потока: cleartool lsbl -comp C -stream S` и выбрать последний. Это должно больше соответствовать тому, что вы хотите (т.е. используйте только ваши 6 имен компонентов вместо всего этого синтаксического анализа/сбора) - person VonC; 15.11.2011
comment
спасибо .. Я думаю, вы правы .. %[latest_bls]CXp это единственный способ, которым кажется, что с description и lscomp не дает никаких других опций .. поэтому мне придется выбрать способ выбора последнего для каждого компонента с использованием регулярного выражения . Теперь мне нужно регулярное выражение, чтобы сделать это. Я опубликую еще один вопрос, если я не смогу найти его сам. Еще раз спасибо - person Pulak Agrawal; 15.11.2011
comment
@PulakAgrawal: добро пожаловать. Я отредактировал свой ответ, чтобы были видны оба варианта (%[latest_bls]CXp или lsbl -comp -stream) - person VonC; 15.11.2011
comment
У меня есть регулярное выражение для выбора последней строки, и оно работает, поэтому объедините cleartool lsbl -comp C -stream S и регулярное выражение @ this post ссылка, моя работа выполнена. Еще раз спасибо - person Pulak Agrawal; 21.11.2011

Проверь это:

cleartool lsbl -fmt "%[latest_bls]p" -component C -stream S

Кроме того, знаете ли вы "репортер по исследованиям и разработкам"? Это поможет вам создать отчет, основанный на всех изменениях, сделанных между последним базовым уровнем и предыдущим и последним базовым уровнем для каждого компонента. Более того, он позволяет вам определить, каков ваш «последний базовый уровень»: вы можете использовать регулярные выражения, потоки или уровни продвижения, чтобы отфильтровать неважные базовые показатели. Если у вас есть дополнительные вопросы, дайте мне знать.

person Tamir Gefen    schedule 15.11.2011
comment
Я попробовал этот вариант, и он ничего не дает ... просто ждет секунду и снова переходит к моему интерактивному очистному инструменту / cmd cleartool ... Я думаю, что он выполняет некоторую обработку и не может найти никаких результатов, поэтому ничего не отображает. Любые советы о том, что я мог пропустить. Я убедился, что уже нахожусь в контексте представления. - person Pulak Agrawal; 15.11.2011
comment
Также lsbl -s -component C -stream S и lsbl -s -component C -stream S работают и дают мне правильный вывод, так что это должно помочь выяснить, почему -fmt не работает. - person Pulak Agrawal; 15.11.2011
comment
Если вам нужна последняя версия только одного компонента, вы можете просто взять первый из выходного списка. - person Tamir Gefen; 15.11.2011
comment
Извините.. Я не понял ваш последний комментарий.. Мне нужна последняя базовая версия для 6 компонентов из 10 изменяемых в проекте. Я знаю, какие 6 и всегда одни и те же шесть, поэтому думал написать сценарий, чтобы получить это. Теперь lsstream -fmt "%[latest_bls]p" S дает мне все 10 базовых линий, разделенных пробелом, без возможности узнать, какая базовая линия принадлежит какому компоненту, за исключением того, что первый всегда является родительским компонентом без корня. - person Pulak Agrawal; 15.11.2011
comment
Спасибо за всю помощь ... вы предоставили начальные указатели, хотя я принимаю ответ VonC как тот, который приведет меня к результатам. - person Pulak Agrawal; 15.11.2011
comment
Ничего страшного... я не проверял синтаксис, когда писал... просто то, что запомнил наизусть - person Tamir Gefen; 15.11.2011