Глава 12 Использование метаданных Конфигурационное управление с применением ClearCase Использование метаданных Глава 12 1 Цели Изучив эту главу, вы сможете: •Понимать, что такое метаданные ClearCase •Использовать метки •Использовать атрибуты •Использовать гиперссылки •Ознакомиться с механизмом настройки стиля использования ClearCase, основанном на триггерах. Глава 12 2 Метаданные ClearCase – Обзор. • Пункты, аннотировавшие различные объекты в VOB • Использование типов метаданных ограничено, хотя, некоторые применимы к версии объекта, ветви или элементу в целом. • Типы метаданных включают: Ветви (br) Элементы (el) Метки (lb) Атрибуты (at) Гиперссылки (hl) Триггеры (tr) Глава 12 3 Создание Метаданных. Метаданные ClearCase создаются последующей схеме: 1. Создание типа метаданных: Определяет тип для использования в определенном VOB. Выполняется с помощью Type Explorer Эта процедура предполагает согласованность и административный контроль 2. Создание экземпляра типа метаданных: Любой пользователь может применить метаданные к объекту VOB. Осуществляется с помощью различных Глава 12 утилит GUI 4 Использование Type Explorer. Explorer – графический интерфейс для создания, просмотра и управления типами метаданных • Каждая папка внутри Type Explorer представляет один из следующих типов метаданных: • Type Ветви Атрибуты Элементы Гиперссылки Глава 12 Метки Триггеры 5 Идентификация версий метками • Метка (или уникальный опознаватель версии) может быть прикреплена к любой версии для уникальной идентификации определенной версии этого элемента foo.c \src design.doc REL3.1.5 REL3.1.5 REL3.1.5 Глава 12 6 Использование меток •В конфигурационной спецификации View: element * REL3 •В версионном расширении имени файла: foo.c@@\main\5 = = foo.c@@\REL2.3 •Для обозначения ключевых точек в проекта, выделения начальных точек ветвления или при определении версии в составе baseline : Opt.c@@\main\robin_branch\BASE •Для определения условий запроса на поиск в cleartool: Cleartool find –all –version “lbtype (REL1)” –print Глава 12 7 Создание типа метки • перед тем как метка REL3 будет применена, тип метки должен быть создан в VOB Глава 12 8 Присоединение метки • Метки могут быть прикреплены к одной версии, рекурсивно ко всем текущим версиям элементов директории или ко всем версиям, участвовавшим в определенном процессе сборки Глава 12 9 Использование Apply Label Wizard • Apply Label Wizard может быть использован для рекурсивного присваивания меток Глава 12 10 Просмотр меток • Метки могут быть просмотрены через Version Tree Browser, панель свойств версии или команду cleartool describe. Глава 12 11 Что такое атрибут? • Пара имя/величина, использующейся для аннотации версии, элемента, ветви, символической связи VOB или гиперссылки • Величина атрибута может иметь определенный интервал значений и может быть нескольких типов msg.c \main menu.c \main \bug tested = "yes" tested = "no" \bug BugNum = 515 tested = "yes" \v3 BugNum = 272 tested = "yes" BugNum = 651 tested = "no" tested = "no" Глава 12 BugNum = 347 tested = "no" 12 Использование атрибутов •В config spec: Element * \main\ {Qastat = = “FALSE”} • При поиске в VOB I:dcrowe_hw> cleartool find . –element Attype (BugNum) -print I:dcrowe_hw> cleartool find src –element BugNum ==405 -print Глава 12 13 Создание типа атрибута • Чтобы создать новый тип атрибута тем же способом, что и тип метки, используйте Type Explorer Глава 12 14 Создание типа атрибута (продолжение) • Тип величины должен быть связан с атрибутом. • Допустимые типы: Integer Real Строковый (string) Время (time) Opaque Глава 12 15 Прикрепление атрибутов Глава 12 16 Гиперссылки – обзор • Аннотация гиперссылки хранятся в БД VOB. • Каждый конец гиперссылки должен указывать на объект VOB, на текстовую строку, либо на то и другое (по крайней мере, хотя бы один конец должен указывать на объект VOB) Объекты VOB могут находиться в различных VOB Слияние гиперссылок предопределено ClearCase для записи операций слияния. hello.doc hello.c \main \main \bug \bug \v3 Implements Глава 12 17 Создание типов гиперссылок • Гиперссылка должна быть определена в VOB, как и остальные метаданные. Глава 12 18 Присоединение гиперссылок • Используйте команду cleartool mkhlink для присоединение гиперссылки к объекту VOB. • Присоединение гиперссылки к определенной версии элемента: I: dcrowe_hw > cleartool mkhlink Implements Src \hello.c doc\hello.txt Created hyperlink “Implements@501@\Project_X”. Глава 12 19 Триггеры – обзор • Триггеры – метаданные, определяющие действия, выполняемые в случае наступления определенных событий ClearCase. События - операторы ClearCase такие, как checkout, checkin и т.д., модифицирующие элементы VOB или метаданные Действия – программы, bat-файлы или команды ClearCase такие, как mkattr или mklable. •Триггеры могут «срабатывать» одним из двух способов: Pre-event Post-event срабатывают перед событием срабатывают после события Глава 12 20 Триггеры Pre-event и Post-event • Триггеры Pre-event помогают проводить установленную политику использования ClearCase если триггер возвращает не нулевое значение, событие не происходит Пример: Устанавливается Pre-event триггер, позволяющий создать тип branch только руководителю проекта • Триггеры Post-event Используются для запуска действий после события После того как событие произошло, они могу использоваться для добавления информации или запуска других операций. Пример: Устанавливается Post-event триггер на операцию checkin, по которому атрибут с номером задания прикрепляется к версии в состоянии checkin. Глава 12 21 Создание триггера – пример •Используйте команду Cleartool mktrtype для создания типа триггера в VOB. Пример: Объявите Pre-event триггер, запрещающий пользователям (кроме VOB админа) создавать тип branch в VOB I: \dcrowe_hw > cleartool mktrtype –nc –type –preop mktrtype –brtype -all -nuser vobadmin -exec “cc_perl –e die ();” NO_BRTYPE_4U Created trigger type “NO_BRTYPE_4U”. I: \dcrowe_hw > cleartool mktrtype rel13_bugfix Cleartool: Error: Unable to create branch type “rel13_bugfix”. Глава 12 22 Контрольные вопросы. •Что такое метаданные ClearCase? •Какие типы метаданных существуют? •Укажите 2 способа прикрепления меток в GUI? •Перечислите типы различных значений атрибутов? •Укажите 2 объекта, к которым можно прикрепить атрибуты? •Что может делать триггер? Когда он запускается? Глава 12 23