Глава 6 Конфигурационное управление с применением ClearCase Версионный контроль директорий Глава 6 1 Цели Прочитав эту главу, вы сможете: • Описать как в ClearCase представляются версии директорий • Создать новые файловые элементы • Создать новые элементы-директории • Понять как можно реорганизовать структуру директории • Связать вместе несколько VOB • Переименовать и переместить ссылки на элементы Глава 6 2 Директории и файлы •ClearCase отслеживает содержание директорий, находящихся под версионным контролем • Операции, которые изменяют директории, включают: Добавление новых файлов Переименование уже существующих файлов Удаление файлов Добавление новых поддиректорий Перемещение файлов и поддиректорий Добавление / перемещение гиперлинков VOB Глава 6 3 Просмотр версий директорий • Как и файловые элементы, директории имеют версионные деревья • Версию директории можно определить по версионному расширению имени • Версия директории – это список или каталог имен файловых элементов, которые появляются в этой версии директории Глава 6 4 Сравнение версий директории Утилита Compare позволяет сравнивать списки имен файлов, появляющихся в двух различных версиях одной и той же директории Глава 6 5 Изменеие директории • Любые изменения содержимого директории требуют создания новой версии • Создание новой версии директории должно сопровождаться выполнением операций checkout и checkin • Если Вы изменяете содержимое файла внутри директории, то нет необходимости совершать операцию checkout над директорией. Глава 6 6 Создание файлового элемента Глава 6 7 Типы элементов - обзор • Типы элементов определяют, как файл будет храниться, извлекаться, сравниваться и сливаться • Некоторые типы элементов могут храниться одинаково, а сравниваться и сливаться поразному (в зависимости от типа) • Каждый файловый элемент имеет свой тип • ClearCase имеет несколько предопределенных типов элементов Глава 6 8 Сравнение типов элементов text_file хранение каждой версии в виде дельты html rose xml compressed_text_file хранение версии как сжатой дельты file хранение версии как полной копии ms_word compressed file хранение версии как сжатой полной копии binary_delta_file версии каждой ветви хранятся отдельно в сжатом виде с дельтами,определяемыми на основе побайтного сравнения directory содержание директорий Глава 6 9 Просмотр типов элементов • Имеющиеся типы можно увидеть в окне Type Explorer Выберите корневую директорию VOB в Explorer Вызовите ClearCase > Explore Types из контекстного меню Щелкните дважды на папку “element types” Глава 6 10 Присвоение типов элементов • Для определения типа элемента, присваиваемого файлу, ClearCase использует файл default.magic ccase-home-dir\config\magic\default.magic Можно создавать собственные magic-файлы Глава 6 11 Присвоение типов элементов (продолжение) • Если ClearCase не может определить тип файла по его расширению, создайте новый тип с помощью команды cleartool mkelem с опцией -eltype Глава 6 12 Какой тип элемента будет использовать ClearCase? • Для определения типа элемента, который будет использован для файла по-умолчанию, используйте команду cleartool file Глава 6 13 Создание директорий • Для создания элемента-директории надо создать директорию во View и применить к ней команду ClearCase > Add to Source Control... Глава 6 14 View-Private файлы • Файлы и директории являются view-private при создании их средствами Windows • ClearCase Explorer показывает тип элемента (File Element, Directory,View-Private File ...) Глава 6 15 Перенос элемента • При переносе элемента: Исходная и новая директории должны быть checked out Используйте команду cleartool mv Глава 6 16 Результат переноса • При сравнении текущей версии директории с предшествующей видно, что после переноса файл вычеркнут из списка исходной директории Глава 6 17 Check In после переноса • Не забудьте выполнить операцию Check In над обоими директориями после переноса! Глава 6 18 VOB Hard Links • VOB hard link это: дополнительное имя для существующего элемента VOB vob_root_dir (vob-tag) include src hello.c •Может быть checked out: hello.h hello.h The two names reference the same element data •Checkedout копия в Вашем View будет идентифицирована с аннотацией на checkout •Остальные ссылки на hard link получат аннотацию [checkedout but removed] •Является типом связи (link), используемым по умолчанию Глава 6 19 Создание Hard Links • Необходимо выполнить checkout для директории, в которой будет создан hard link Глава 6 20 Symbolic Links • Символическая связь в VOB: F: особый, не версионный объект VOB файл, состоящий из строки символов не может быть checked out может использоваться между VOB project_Y bin Глава 6 include project_Z include src hello.h 21 Создание Symbolic Links • При создании связи используйте опцию -slink с командой cleartool ln Глава 6 22 Просмотр свойств Symbolic Link • Для просмотра свойств symbolic link выделите его и примените ClearCase > Properties of Symlink Глава 6 23 Удаление имени элемента • Команда cleartool rmname удаляет имя элемента или VOB symbolic link из списка директории. • Элемент остается в VOB 3 Markefile hello.c hello.h until.c 4 Markefile hello.h until.c Makefile hello.c hello.h until.c reference to hello.c removed Глава 6 24 Удаление версии • Cleartool rmver удаляет одну или более версий элемента из VOB удаляет все метаданные, связанные с удаляемыми версиями удаляет все записи о событиях, связанных с удаляемыми версиями обычно используется для удаления устаревших версий Глава 6 25 Удаление элемента • Команда cleartool rmelem Полностью удаляет версионное дерево элемента из VOB Удаляет все ссылки на элемент Не удаляет элементы имеющие checkedout версии hello \bin 0 0 1 1 hello 2 2 hello 3 Глава 6 26 Директория lost+found • Находится в каждом VOB на самом верхнем уровне структуры директорий • Содержит элементы, не включенные ни в одну из версий директорий Глава 6 27 Пример директории lost+found Глава 6 28 Восстановление элемента из директории lost+found • Выполните checkout для директории, в которой элемент будет восстановлен • Переместите элемент из lost+found, используя его идентификатор (oid) командой cleartool mv и выполните checkin Глава 6 29 Контрольные вопросы • Как ClearCase представляет версии директорий? • Какие команды GUI и CLI использовать для создания нового файлового элемента? • Как создать новый элемент-директорию в GUI и CLI? • Какая команда позволяет реорганизовать структурудиректории? • Чем отличаются hard link и soft link? • Чем отличаются команды rmname и rmelem? Глава 6 30