Вы находитесь на страницах старой версии сайта.
Переходите на новую версию Interface.Ru

Кому и зачем нужен ClearCase.
Часть 2. Построение видов

Предыдущая часть

Новичков Александр,
Interface Ltd.

VIEWs, изучение основных свойств фильтров просмотра.

Второе опорное понятие в ClearCase, без которого невозможна работа в принципе - это View – система видов (представления информации), которая позволяет фильтровать все обращения к VOB, выводя только ту часть из них, которая была определена пользователем. Как уже упоминалось ранее ClearCase, осуществляет контроль над файлами при помощи стандартных операций “check in” и “check out”, которые призваны вносить файл в рамки контроля, либо выводить его.

View позволяет получать доступ к файлам и данным проекта при помощи стандартных средств работы. Ими могут быть: “проводник”, “Word”, а также программы, проводящие любые файловые операции. Необходимость использования “видов” очевидна, так как без наглядного представления, данные не могут быть информативными. Если вновь вернуться к понятию фильтра, и посмотреть на View с этой точки зрения, то получается очень интересная картина: ведется проект, в котором скопилось по 10-20 версий каждого файла, и все из них, как положено, находятся в VOB, а работать команде необходимо только со свежей (последней) версией, то налицо проявляется основное (фильтрационное) свойство видов – они позволяют скрыть от глаз конечного пользователя всю кухню (историю создания), выводя на экран только последний релиз и все к нему относящееся.

ClearCase имеет возможность работы с двумя типами View, имеющими свою специфику в использовании: Dynamic View и Snapshot View.

На этом специфика видов не заканчивается, поскольку каждый из них может строиться на базе профилей пользователей. Профили задаются отдельно, после чего на их основе строят виды. При помощи профилей можно организовать, например, параллельную разработку одного и того же файла разными членами команды разработчиков, после чего можно без особых проблем объединить их в один, и получив таким образом файл, построить на его основе новый релиз.

Рассмотрим особенности обоих типов представления:

Как видно из вышеcказанного, оба вида имеют достоинства и недостатки, а посему придется использовать их совместно в зависимости от текущих потребностей. Например, если локальная сеть в организации построена на базе систем Windows NT и 98, то всем разработчикам в W98 придется работать только со Snapshot View. В случае же надомной работы или частых разъездов участников проекта, Snapshot View становятся просто незаменимы, ведь только данный тип представления позволяет получить “слепок” необходимых файлов, скажем, на переносной компьютер и уехать в командировку. По возвращении в офис разработчику останется только подключиться к сети и произвести обновление подконтрольных данных. Динамический способ просмотра, гарантирует Вам наиболее полный охват компонентов проекта, поскольку данный тип вида работает со всеми присоединенными репозиториями. Использование такого метода оправдано для менеджеров проекта, которым, в силу многих причин, необходимо иметь доступ ко всему проекту целиком.

Для работы с видами существуют такие стандартные для объектов операции как: создание, удаление, включение, отключение и обновление. Работа с видами тесно связана с таким мощным инструментом, как ClearCase Details, в чьи обязанности входит постановка/выведение файлов под контроль, получение справочной информации о конкретном элементе, вывод дерева версий… То есть, исходя из названия, данный модуль отвечает за все детали, относящиеся к контролю данных. Соответственно, разработчик большую часть времени будет проводить в работе с ClearCase Details.

На рисунке 3 отражено состояние окна ClearCase Home Base, в котором активна вкладка Views. Здесь отображено 5 операций над видами:

Оболочка

Начнем с создания Dynamic View.

Активизация Create View приводит к появлению вопроса о том будем ли мы создавать вид, базирующийся на проектном дереве (об этом чуть позже). Пропускаем данный шаг без изменения. На следующей вкладке выбирается тип создаваемого вида (рис.4). Выбираем Dynamic View.

Следующий шаг полагает введение информации об имени создаваемого вида, сопровождающем комментарии, букве диска, на котором будет смонтирована файловая система MVFS. Для задания пути к месторасположению вида на локальной машине необходимо войти в пункт Advanced, где в соответствии с правилами необходимо ввести полный путь к открытому каталогу (см. создание VOB). В соответствии с рекомендацией Rational, касающейся сохранения документов, можно предложить сохранять данные обо всем проекте в одном каталоге не “размазывая” по всему диску. По окончании ввода необходимой информации и нажатия на Finish можно воспользоваться итоговым окном, где можно еще раз проверить правильность задаваемых параметров (на рисунке 5 показано окно, в котором, в качестве имени View указано “Administrator_view2”, а в качестве имени диска – “Y”).

После нажатия “ОК” системой будет выведено сообщение либо об успешном создании указанного вида, либо список ошибок - в случае неудачи.

Результатом работы будет появление нового диска с меткой “Administrator_view2”, куда, в качестве папок, будут внесены имена всех присоединенных (смонтированных) в данный момент VOB. Далее работа с динамическим видом будет продолжена в таком же ключе: как только создаетcя или присоединяется VOB – ссылка на него автоматически попадает во все активные динамические виды.

Snapshot View

С данным типом видов все также несложно. Первые шаг мы оставляем без изменений, пропуская ссылку на проектное дерево. Вторым шагом подтверждаем необходимость создания именно Snapshot View. Появившееся окно предполагает введение следующих данных: имя вида, место хранения (с указанием полного пути к директории), комментарий. По окончании всех предварительных манипуляций ClearCase представит окно со списком всех имеющихся в проекте VOB. Для полноценной работы можно выбрать либо весь VOB целиком, либо любой его компонент (начиная с конкретной директории и заканчивая отдельным файлом или группой выбранных файлов). На рисунке 6 отображено окно выбора, где и производятся все описанные манипуляции. При внимательном рассмотрении представленного списка можно и нужно рассмотреть следующие особенности:

Результатом манипуляций будет создание директории по указанному пути (на втором шаге создания). Все элементы, выбранные для контроля, автоматически скопируются в эту директорию в соответствии с древовидной структурой.

Следует учесть особенность Snapshot: никакой виртуальной файловой системы для данного вида ClearCase строить не будет - все будет размещено локально.

Создание видов из командной строки

Как и при создании репозиториев, ClearCase позволяет создавать новые виды из командной строки (апплет cleartool). Для создания View существует команда “mkview”, в чьи обязанности входит создание видов. Данная команда применяется как для создания Snapshot, так и для Dynamic видов. В зависимости от заданной спецификации будет создан необходимый тип вида со всеми переданными ему характеристиками. Создавать виды из командной строки сложнее чем репозитории, особенно это касается создания Snapshot View, в котором необходимо вручную править Config Spec (конфигурационную спецификацию).

Перед созданием вида рассмотрим семантику команды MKVIEW:

Для динамических видов:

mkview -tag view-tag [-tcomment tag-comment] [-tmode text-mode] 
[-region network-region] [-cachesize size]
[-shareable_dos | -nshareable_dos]
[-host hostname -hpath host-stg-pname -gpath global-stg-pname]
[-stream stream-selector]
view-storage-pname

Для снапшотов:

mkview -tag view-tag -snapshot [-vws view-storage-pname]
[-tcomment tag-comment] [-tmode text-mode]
[-cachesize size] [-ptime]
[-host hostname -hpath host-stg-pname -gpath global-stg-pname]
[-stream stream-selector]
snapshot-view-pname

Как и ранее, мы не будем останавливаться детально на каждом ключе в списке параметров вызова, а лишь изучим необходимые компоненты, для чего создадим динамический вид с именем “HELLO”. Команда, выполняющая функцию, будет выглядеть следующим образом:

mkview -tag hello \\novichkov\1\hello 

Исполнение команды ведет к созданию динамического вида с именем “hello”. Причем физически сам вид будет храниться на хосте с именем “novichkov”, в открытой для доступа директории. Имя создаваемой директории, для хранения служебной информации, – “hello” (не путать с именем вида – наименования могут не совпадать). Независимо от способа создания View (визуально или из командной строки) ClearCase создает служебную директорию по указанному адресу, где хранит всю необходимую информацию в специальном представлении.

Продолжим создание видов на примере команды, вводящей в строй Snapshot View:

Mkview –tag hello –sna –vws \\novichkov\1\hello c:\snapa 

Результирующим действием введенной команды станет создание директории “snapa”, в которую мы чуть позже добавим необходимые подконтрольные элементы. Ключ “vws” сообщает системе где будет храниться служебная информация о представлении данного вида. Переключатель “-sna” дает системе команду на создание именно Snapshot View. Первый параметр “-tag hello” задает имя вида.

При создании вида из командной строки необходимо провести ряд манипуляций, которые явно присутствуют при визуальном построении и напрочь отсутствуют в командной строке. Начнем рассмотрение особенностей с описания возникшей проблемы: вышеприведенная команда отлично справилась с задачей создания вида, но она создала только его каркас, описание, не включив подконтрольные элементы. Казалось бы система явно выполняет не совсем то, что хотелось…

На самом деле все обстоит гораздо сложнее и проще одновременно!

В системе есть целый набор свойств (properties), правил (rule) и спецификаций (Config Spec) по которым создается любой вид. Каждое из трех свойств можно изменять в процессе работы явно и неявно. Неявно происходят все изменения, когда пользователь работает из визуальной оболочки: система заполняет сама все необходимые поля и делает соответствующие привязки, однако ничего не мешает разработчику постоянно обращаться к данным свойства, внося ручные корректировки (благо ClearCase позволяет изменять любые свойства любого объекта как из командной строки так и визуальном режим, пользуясь обоими в зависимости от необходимости). Подобный интеллект отсутствует в командной строке, что обязывает пользователя к более формальному отношению ко всем создаваемым объектам. Если попробовать вызвать из оболочки свойства созданного View можно увидеть на вкладке “Config Spec” следующую информацию о состоянии элементов:

element * CHECKEDOUT 
element * /main/LATEST 

Данные описания являются стандартными и создаются для всех видов неявным образом самой программой.

Если возникнет необходимость добавить какой либо новый (пока только подконтрольный) элемент (загрузить его), необходимо добавить к спецификации третью строку со следующим содержанием: “load \app_vob\src”, что позволит подключить к виду всю папку “src” со всем ее содержимым (на основе репозитория “app_vob”).

Это то, что касается полуручного ввода. В режиме чистой командной строки необходимо воспользоваться командой “EDCS”, набрав ее находясь в директории, ассоциируемой с видом (в нашем случае это c:\snapa). В результате появится окно, в которе можно внести соответствующие спецификации. Если же Вам нужна чистая командная строка, то необходимо заранее подготовить файл со спецификацией и передать путь к нему, в качестве ключа к “EDCS” (например edcs c:\my_spec).

Любое обновление данных производится командой “update”, находясь при этом в директории со Snapshot View.

Для получения информации о списке всех View, используемых в данный момент в системе необходимо воспользоваться командой “lsview”, которая выводит собственно список видов с полными именами и месторасположением. Отличить Dynamic от Snapshot можно по наличию звездочки перед именем вида (присутствует только у Dynamic View).

Рассмотрим все основные возможности видов:

К сожалению, подробное описание функциональности любого программного обеспечения, а продукта ClearCase особенно, выходит за рамки статьи. Мы не сможем подробно остановиться на создании видов, поскольку это непочатый край работы. Весь материал, изложенный на данных страницах, носит ознакомительно-показательный характер и направлен на популяризацию продукта Rational ClearCase. Соответственно, за рамками данной статьи осталась параллельная разработка на основе профилей и проектные VOB'ы. Я надеюсь устранить данный недостаток в последующих статьях, если хватит времени и сил…

Следующая часть

За дополнительной информацией обращайтесь в компанию Interface Ltd.

Обсудить на форуме

Рекомендовать страницу

INTERFACE Ltd.
Телефон/Факс: +7 (495) 925-0049
Отправить E-Mail
http://www.interface.ru
Rambler's Top100
Ваши замечания и предложения отправляйте редактору
По техническим вопросам обращайтесь к вебмастеру