Используя cleartool я могу найти все файлы связанными с маркировкой с помощью чего-то как:
ct find -avobs -version "lbtype (Build-Label)" -print
То, как я нахожу все объекты измененными (включая добавляет и удаляет) между двумя маркировками?
В ClearCase (в моей установке в разделе «Администрирование») есть построитель отчетов. В разделе «Элементы / метки» вы можете выбрать «Элементы, измененные между двумя метками» или «Версии, измененные между двумя метками», в зависимости от того, что вам нужно. Затем вы можете выбрать путь для анализа и выбрать две метки для сравнения.
После запуска процесса у вас есть возможность сохранить результаты в формате HTML, XML или CSV.
Как упоминалось в ответе на « Как искать файлы по метке »
cleartool find -all -element "{lbtype_sub(REL1)}" -print
проще и lbtype_sub
позволяет считать запрос истинным, если какая-либо версия элемента имеет метку
(см. query_language
страницу руководства )
cleartool find -all -element '{lbtype_sub(REL1) && lbtype_sub(REL2)}' ^
-version '{!(lbtype(REL1) && lbtype(REL2)) && ^
(lbtype(REL2) || lbtype(REL1))}' -print
найдет все элементы, которые не имеют обе метки, перечисляющие все версии в текущем VOB с меткой REL1 или REL2, но не обе вместе.
Примечание: если метка является базовой линией UCM, это, конечно, еще проще ( ct diffbl
):
ct diffbl -ver BL1@\myPVob BL2@\myPVob
Чтобы найти все элементы, в том числе удаленные или не выбранные с помощью config_spec, добавьте –nvisible
к параметрам поиска.
Для сравнения у меня есть сценарий оболочки под названием freeze-list
, который более или менее запускает ту же команду find, что и вы (перенаправление вывода на
) .
У меня есть еще несколько скриптов 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.