Найдите изменения между ярлыками

Используя cleartool, я могу найти все файлы, связанные с меткой, используя что-то вроде:

ct find -avobs -version "lbtype (Build-Label)" -print

Как найти все объекты, измененные (включая добавление и удаление) между двумя метками?


person brainimus    schedule 17.03.2010    source источник


Ответы (4)


В ClearCase (в моей установке в разделе «Администрирование») есть построитель отчетов. В разделе «Элементы / метки» вы можете выбрать «Элементы, измененные между двумя метками» или «Версии, измененные между двумя метками», в зависимости от того, что вам нужно. Затем вы можете выбрать путь для анализа и выбрать две метки для сравнения.

После запуска процесса у вас есть возможность сохранить результаты в формате HTML, XML или CSV.

person brainimus    schedule 17.03.2010
comment
Я могу видеть список изменений между двумя ярлыками с помощью Cleacase Report Builder. Теперь, как я могу найти количество строк, добавленных / измененных / удаленных между двумя метками? Есть ли способ добиться этого? - person vkreddy; 20.09.2016

Есть другой способ сделать это, где LABEL1 - старый ярлык, а LABEL2 - последний. Проверьте дату создания меток и поменяйте их местами перед вводом команды, поскольку она печатает отрицание условного оператора &&. Работает как по волшебству!

введите описание изображения здесь

$(cleartool find $PWD -ver "!lbtype($LABEL1) && lbtype($LABEL2)" -print)
person dochoex    schedule 16.10.2015
comment
Пока не тестировал, но смотрится интересно. +1 - person VonC; 16.10.2015
comment
Я использовал похожую форму: cleartool find . -type f -nxname -version "version(\main\LATEST) && !lbtype(LABEL_27_12_2016)" -print - person Sergio M C Figueiredo; 30.12.2016

Как упоминалось в ответе на вопрос «Как искать файлы по метке "

cleartool find -all -element "{lbtype_sub(REL1)}" -print

является более простым и lbtype_sub позволяет запросу быть истинным, если какая-либо версия элемента имеет метку
(см. _ 3_ справочная страница)

cleartool find -all -element '{lbtype_sub(REL1) && lbtype_sub(REL2)}' ^ 
  -version '{!(lbtype(REL1) && lbtype(REL2)) && ^
  (lbtype(REL2) || lbtype(REL1))}' -print 

найдет все элементы, у которых нет обеих меток, перечислив все версии в текущем VOB с меткой REL1 или REL2, но не обе вместе.

Примечание: если метка является базовым уровнем UCM, это, конечно, еще проще (_ 5_):

ct diffbl -ver BL1@\myPVob BL2@\myPVob
person VonC    schedule 17.03.2010

Чтобы найти все элементы, в том числе удаленные или не выбранные вашей config_spec, добавьте –nvisible к параметрам поиска.

Для сравнения у меня есть сценарий оболочки с именем freeze-list, который более или менее запускает ту же команду поиска, что и вы (перенаправляя вывод на <label>.versions).

Затем у меня есть несколько других сценариев Perl, которые принимают два таких файла, читают их и сравнивают каждый элемент. У меня есть, например, freeze-compare-text для простого вывода diff -u, freeze-compare-kdiff3 для запуска сравнения kdiff3 для каждого файла, в котором есть некоторые изменения (с некоторым интеллектом, чтобы избежать ложных срабатываний, когда элемент 0 в новой ветке идентичен начальной версии и т. Д.). И еще у меня есть freeze-compare-diffstat (в основном вывод вывода в diffstat).

Если вы просто хотите найти изменения между метками как одноразовую операцию, вы можете запустить

ct find -avobs –nvisible -version "lbtype(label1)" -print | sort > label1.versions
ct find -avobs –nvisible -version "lbtype(label2)" -print | sort > label2.versions
comm -3 label1.versions label2.versions

который перечислит все элементы, у которых нет одинаковых версий в label1 и label2.

person hlovdal    schedule 17.03.2010