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

Кому и зачем нужен ClearCase.

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

Часть 3. Контроль над данными

Александр Новичков

После создания всех репозиториев и видов настало время попробовать установить файл под контроль программы ClearCase. Как отмечалось ранее, ClearCase в плане контролирования данных способен не только на простой файловый контроль, когда отслеживается изменение одного конкретного файла, но и так называемый контроль за средой, при котором программа начинает контролировать состояние директорий и групп файлов, что помогает разобраться с тем, кто, когда и какой файл внес в проект. Данный аспект можно и нужно отметить как особо важный и сказать, что ClearCase действительно справляется с поставленной задачей.

Итак, каким образом можно ставить файлы под контроль? Все необходимые для этого файлы могут быть скопированы в построенные виды и уже в них поставлены под контроль. Существуют всего три операции, проводимые над данными:

Постановка под контроль (Add To Source Control). Данная операция является первичной. Основная ее нагрузка - декларация того, что тот или иной файл будет взят под контроль и не более того.

Check-in. Поставить под контроль. На этот раз - зарегистрировать файл и вывести ему в древовидной структуре место. Данная операция является стандартной для любых действий, связанных с контролем данных. После задания файлу подобной команды ClearCase в репозитории создаст (закроет) версию файла, которую уже нельзя отредактировать, поскольку он автоматом получает атрибут "read only".

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

Что же дает обыкновенному разработчику ClearCase в плане контроля изменений:

  1. Возможность поставить под контроль абсолютно все: начиная с файла и заканчивая окружением проекта, в том числе древовидной структурой
  2. Для каждого подконтрольного элемента рисуется дерево версий, которое на любом этапе разработки можно проанализировать
  3. Имеется возможность производить слияния нескольких версий одного файла или структуры окружения
  4. Возможность сравнения версий

К сожалению, все операции со слиянием и сравнением доступны только для известных форматов файлов, в которые, естественно, не входят исполняемые, объектные, графические… - естественно, файлы данного типа можно ставить под контроль и хранить вер-сии, но они будут, подобно амебе, существовать без возможности аналитического анализа. ClearCase'ом понимаются текстовые файлы, а также, файлы FrontPage и Word.

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

Используя ClearCase, все участники проекта могут хранить и ставить под контроль собственные данные, создавая необходимые директории. ClearCase позволит им работать только с последними (утвержденными) версиями файлов.

На данном этапе работы удобно использовать две программы из состава ClearCase: ClearCase Detail и VOB Administration Browser. Первая из них представляет собой полнофункциональную консоль работы с данными. То есть здесь находятся все средства управления, которые только могут пригодиться в работе над проектом в целом. Здесь и опера-ции контроля, и вызов менеджера объединений, и вызов дерева версий, а также многое другое - в общем, полный комплекс операций над данными. Вторая программа, конечно, не совсем подходит под контроль, однако показывает всю статистику проекта.

Говоря о методологии контроля, нельзя не отметить наличие такой мощной функции программы, как создание ответвлений (Branches) на дереве версий, что делает возможным на время выйти из общего русла проекта, доработать нужный файл, а потом на его основе либо создать новый, либо влить в существующий в проект. Программа позволяет создавать неограниченное количество ответвлений от одного подконтрольного элемента от одного до бесконечности... Правда, и здесь есть небольшие ограничения, поскольку в ClearCase живут, порой абсолютно независимо, два раздела: графический интерфейс и командная строка. Так вот, множественные ответвления для элементов возможно создавать только из командной строки, а из графической возможно лишь создание основного ответвления с условием обязательного завершения и только для вида в целом. Такой ограничительный подход к полнофункциональной реализации имеет место быть, поскольку позволяет не совсем сведущему человеку заботиться о большом количестве направлений в проекте: каждому по способностям.

От общей теории перейдем к конкретному рассмотрению возможностей ClearCase в плане построения деревьев версий и постановки данных под учет. И как обычно, начнем с описания графических (визуальных, интуитивно понятных) свойств.

ClearCase Detail

Данный модуль можно и нужно считать основным при работе в ClearCase, поскольку именно через консоль Detail можно получить доступ ко всем функциям продукта по управлению версиями и конфигурациями.

Рис. 7

На рисунке 7 показан вид данной консоли после ее вызова. При беглом осмотре его можно сравнить с тем видом, который по обыкновению выводит обычный Explorer. Обратите внимание на левую часть окна, там выведен полный список всех дисков в системе. В имени некоторых присутствует слово view, указывающее на то, что данный диск является динамическим и виртуальным с файловой системой MVFS (см. выше). Как уже говорилось ранее, в каждый динамический вид автоматически включа-ются все репозитории (VOB), что и видно на правой части ClearCase Detail: здесь есть упоминание имен всех трех присоединенных VOB. Специфический значок, показанный слева, указывает на то, что данный элемент находится под контролем и имеет статус "CHECK IN", находясь под контролем ClearCase. Далее в окне выводится некоторая служебная информация о теку-щем состоянии репозиториев.

Технология хранения версий позволяет команде разработчиков независимо друг от друга или совместно ра-ботать над одним и тем же файлом. А под занавес и объединить его с главным. При подобном подходе в ClearCase необходимо создать ответвление от текущей версии, дав ему имя. Я заранее подготовил файл 900.txt, поставил под контроль и произвел некоторые изменения, включающие создание ответвлений. Результат построения дерева для данного файла вы можете посмотреть на рисунке 8. Анализ выведенной информации можно описать так:

Рис.8

Итак, незаметно мы и подобрались к самому интересному - к параллельной разработке. На данном дереве были созданы два ответвления (CC_test и CC_test_99), которые позволят двум участникам проекта независимо друг от друга править указанный файл. Количество ответвлений можно сделать отличным от двух, как в большую, так и в меньшую сторону.

Для того, чтобы отредактировать файл в конкретной ветви, его необходимо вывести из состояния check-in в состояние check-out. Сделать это можно при помощи правой клавиши мыши, нажав ей на имени соответствующей ветви. Результатом будет добавления пустого кружочка к соответствующей ветви дерева, перевод "глаза" на новую версию и замена файла 900.txt в виде с версии 3 (на ответвлении "Asteroid"), на новую. Файл нужно отредактировать и вновь поставить под контроль. Результатом действия команды check-in будет: генерация новой версии (пустой кружок получит цифру), переезд "глаза" в основную версию (3), возвращение в вид прежнего содержимого файла 900.txt (соответствующего третьей версии).

На дереве версий можно расставлять и задавать метки для разных версий. Правда, ClearCase достаточно оригинально расставляет метки: ему сначала нужно ввести имена всех меток с комментариями, а уже затем расставлять их. Логика странная, но уже неизменная.

Для версий допустимы еще две мощные функции - это сравнение и слияние версий. Методом сравнения можно выяснить все отличия, которые имеются у двух версий, для чего необходимо пометить их и вызвать менеджер сравнений (рис 9). В окне отражаются две версии одного файла, где можно спокойно сравнить их. Специальными значками ClearCase подсвечивает новые и измененные строки. Пользуясь кнопками "next" и "previous", можно путешествовать по всем изменениям, отслеживая их количественно и качественно.

Рис. 9

Для слияния версий необходимо воспользоваться менеджером слияний (merge manager), который, как и в случае со сравнением, позволит увидеть разницу в двух файлах и объединять необходимые строки, создавая на базе двух файлов один новый. На рисунке 10 я сделал абсолютное слияние. Естественно, возможны различные варианты слияний, например из разных видов, построенных на разных профилях, файлы и директории можно сливать по их именам, по меткам, и т.д. Но в данном случае проще сделать так, как показано на рисунке. Как уже говорилось выше, сравнивать и сливать можно не только содержимое файлов, но и состояние директорий проекта, когда, скажем, один из разработчиков включил в проект несколько новых файлов.

Рис. 10

Если довести ситуацию со слияниями до логического завершения (для получения новой версии на ветви main), можно еще слить версии до получения нужной версии на дереве. Примерный вид такого множественного слияния показан на рис 11. Как видите, все изменения, внесенные нами, отразились на дереве версий достаточно отчетливо:

Командная строка

Рис.11

По традиции рассмотрим выполнение описанных функций из командной строки, а для начала научимся ставить файлы и директории под контроль. Для этого необходимо командой "copy" скопировать все необходимые файлы с локального диска на виртуальный (в нужный вид), после чего воспользоваться командой mkelem, для установки файла под контроль (Add To Source Control). Последовательность действий такова:

Сначала выполняем Check-out для директории, куда был помещен файл (подобный шаг нужен для того, чтобы запротоколировать вхождение нового файла в проект) при помощи команды "cleartool CO -nc .". Следующая по счету команда должна добавить к проекту скопированный файл (как говорилось ранее, все файлы представляют собой разновидность элементов), а делается это при помощи следующей команды "cleartool mkelem 900.txt".

И только после такой последовательности действий можно вернуть под контроль директорию ("cleartool ci -nc .") и поставить под контроль файл 900.txt ("cleartool ci -nc 900.txt"). Следует отметить одну общую особенность при постановке файлов под контроль: программа перед тем, как установить файл, проверяет - изменился он или нет по сравнению с предыдущей версией. Если ДА - файл ставится под контроль без проблемных, лишних вопросов. Если НЕТ, то по умолчанию ClearCase откажется устанавливать файл под контроль.

При таком развесистом дереве версий, которое было создано для файла 900.txt, очень трудно разобраться в деталях без соответствующих комментариев (меток). Для решения подобной проблемы служат две команды: mklbtype и mklabel.

Mklbtype создает метку с указанным именем, но ничему ее не назначает. Mklabel присваивает созданную метку конкретному элементу.
Например:

Mklbtype my_label
Mklabel my_label \tuta\900.txt@@\main\asteroid\ClearCase_test\0

Обратите внимание на второй параметр команды Mklabel, в котором описывается путь до нулевой версии файла 900.txt. Такую нотацию для записи пути к определенной версии элемента мы и будем использовать в дальнейшем.

Удаляет метку команда rmlabel, в которую необходимо передать все те же параметры, что и в Mklabel.

Создание простых ответвлений также не очень сложно. Для данных операций существуют две команды: mkbrtype и mkbranch.

Исходя из предыдущих примеров и из оригинального интеллекта программы ClearCase, перед созданием ответвления необходимо внести и зарегистрировать его имя командой "mkbrtype -nc new_01". Данная команда никого не к чему не обязывает, попросту регистрирует имя ответвления, физически его не создавая.

Сложнее дело обстоит с физическим ответвлением, поскольку перед его созданием необходимо точно определить, от какой версии создается ветвь. Если ничего специального не указано, создастся ответвление от текущей версии (подсвеченной глазом), в противном случае, когда необходимо создать ветвь не для текущей версии, можно воспользоваться указанием пути к конкретному элементу, так как делалось выше. Позволю акцентировать свое и ваше внимание на одну особенность в создании ответвления: элемент, для которого создается ветвь, должен обязательно находиться в состоянии "check-in".

Например:
     mkbranch new_01 900.txt@@\main\Asteroid\cc_test_99\0

Как видно из параметров, mkbranch создаст ответвление с именем new_1 (рисунок 12 наглядно покажет действие данной команды) для элемента 900.txt, находящегося по адресу \main\Asteroid\cc_test_99\0. Хочу немного себя поправить, добавив к сказанному одну деталь: все демонстрируемые команды набираются из интерпретатора команд cleartool, а текущей является директория в динамическом View, куда помещен подконтрольный файл 900.txt. Уточнение приведено не случайно, поскольку находясь в ином каталоге необходимо задавать полный путь к элементу. В моем случае он выглядит следующим образом: "m:\99-09\tuta\900.txt@@\main\Asteroid\cc_test_99\0", где: "m:" - имя виртуального диска, созданного видом, "99-09" - имя самого вида, "tuta" - имя VOBа.

В вышеописанном примере мы ввели достаточно сложную команду создания ответвления. Подобные ветви, как показывает практика, создаются не так часто. Обыкновенно создается ветвь от текущего элемента: mkbranch new_01 900.txt, - подобная запись гораздо проще воспринимается и запоминается.

Рис.12

Производить слияния версий можно и из командной строки, правда, контролировать результат проще графически, но…

Создание объединения из командной строки сводится к выведению конкретной версии файла (реципиента) в состояние check-out, после чего командой "merge" указывается его имя и путь к тому элементу, из которого будут браться данные для объединения (донора). В нашем случае можно вывести любую версию в состояние check-out, после чего выбрать исходный элемент и запустить все на исполнение.

Например:

     Co -nc 900.txt@@\main\Asteroid\cc_test\2
     Merge -to 900.txt 900.txt@@\main\Asteroid\cc_test_99\2
     Ci -nc 900.txt

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

Дополнительные возможности ClearCase

MultiSite

Как известно: аппетит приходит во время еды, стало быть то, что не вызывало интереса до начала описания, должно вызвать его в процессе чтения, на худой конец после него! В предыдущих частях, мы рассмотрели все основные возможности работы программы ClearCase, коснувшись понемногу всех главных аспектов его использования. Естественно, не идет и речи о каком бы то ни было приемлемом по полноте описании данной программы, так как для полного описания потребуется не статья, а учебник, и даже не один. Ведь по большому счету, цель данной статьи - ознакомление конечного пользователя с возможностями продукта: введение в предметную область, общее описание возможностей… и так далее. Начиная с данной главы, мы попытаемся описать некоторые возможности пакета ClearCase, которые являются весьма и весьма интересными и познавательными, но могут и не использоваться в повседневной жизни конкретным разработчиком.

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

Ниже мы опишем возможность ClearCase, помогающую вести работу над проектом группам разработчиков, чьи офисы находятся на значительном удалении друг от друга (в другом районе, городе, стране, планете…).

MultiSite - специальный модуль, дополнительно входящий состав ClearCase и позволяющий обмениваться данными нескольким (двум и более) командам разработчиков. Данный модуль неявно присутствует в любой поставке ClearCase за исключением Attache, и начинает свою работу только после введения специального ключа, дающего "добро" на все возможности репликации проектов.

К сожалению, выявить присутствие данного модуля весьма проблематично, поскольку он не имеет графического интерфейса и практически никак не указывает на свое присутствие в системе. Отчасти такое поведение можно считать недостатком, но при детальном углублении в суть проблемы выясняется, что явное отсутствие модуля не такая большая проблема, в силу тех функциональных обязанностей, которые возложены на MultiSite. Основным и единственным предназначением данного модуля является генерация и отправка синхронизационных пакетов - реплик, по указанным IP адресам. Согласитесь, данная функция абсолютно не нужна большинству участников проекта. Подобная идеология и легла в основу "невидимости" модуля: с глаз долой, из сердца вон!

И по сложившейся традиции давайте на конкретных примерах разберем функциональные возможности MultiSite, но для начала опишем основные возможности и особенности программы:

Настройка модуля MultiSite производится из единствнного графического аппета, имеющегося в его распоряжении. Местоположение данного модуля столь же неявно, как и само присутствие MultiSite. Апплет находится в ControlPanel и представляет собой настроечное окно. Рисунок 13 показывает вид данного окна.

Рис. 13

Обратите внимание на простоту и небесную лаконичность данного диалога - в нем нет ничего лишнего!

Получим развернутое представление о следующих полях:

Maximum Packet Size - максимальный размер передаваемой реплики. Задает верхнюю планку на размер пакета.

Administrator Email - адрес почты администратора. В случае всех неудач в отправлении пакета система сообщает все по введенному электронному адресу, что позволяет удаленно контролировать процесс передачи реплик.

Staorage Clases - здесь задаются настройки классов. В частности задаются наименования классов передачи, которым задаются специфические директории по отправке и приему реплик. Поскольку механизм работы MultiSite сводится к отправке реплик из специальной директории, то неплохо, например, для разных проектов создавать разные клас сы, для каждого назначая отдельные каталоги во избежание путаницы. Впрочем, "желательно" - не значит "обязательно".

Routing Information - адрес сервера для передачи пакета. Здесь необходимо указать IP адрес сервера, для которого производится передача пакета. Количество передаваемых адресов ничем не ограничено. MultiSite последовательно перешлет по каждому из них сгенерированную реплику. Очень любопытным представляется пункт "Next Routing Hop", в котором дается адрес следующего сервера, ведь передача возможна не только по принципу "от одного ко многим", но и "получил сам - передай другому". Графически данные способы отображены на схемах №№1,2. Естественно, данные примеры достаточно тривиальны, реальные же схемы могут отличаться от искусственных большей ветвистостью, совмещая различные комбинации обоих способов передачи.

Создание и передача реплик:

Вся работа с MultiSite осуществляется через командную строку интерпретатора MultiTool.exe. По сравнению с ClearTool, здесь команд существенно меньше, как по описанию так и по факту. Действительно важных, или скажем, часто используемых, всего 4-5, правда, их синтаксиса хватило бы на десяток простых.

Попробуем описать, что в теории может делать MultiSite и как в принципе создается и передается реплика. Схему передачи можно выразить следующим образом:

  1. При помощи команды mkreplica создать реплику (на передающем сервере). Наступает очень тонкий и интересный момент. В зависимости от специального селектора данная команда может по-разному создавать реплики. Например, есть возможность мгновенной и отложенной передачи реплики, когда пакет автоматически кладется в директорию, указанную в графическом аплете, и далее отправляется по указанному адресу. Но самое интересное даже не в этом, mkreplica способна создать реплику и сохранить ее на любом носителе - от дискеты до DVD. Подобная практика применяется редко, но она существенно расширяет способности продукта. Ну, скажем, стандартная реплика никак не шифруется (за исключением простенького паролирования), соответственно любой желающий может перехватить ее и узнать все секреты Ваших разработок. Вот здесь и может пригодиться такой способ генерации, при котором Вы получаете файл, сами его шифруете и сами отправляете в место назначения любым известным науке способом. Правда, в таком случае, словосочетание "автоматическая синхронизация" слегка теряет свой смысл!
  2. На принимающем сервере также ввести mkreplica с параметром "import". Данная команда набирается только один раз при первичной передаче пакета. Все дальнейшие передачи называются синхронизационными, а для их передачи и приема используется команда SyncReplica, которая не создает полную копию репозитория, как в случае с mkreplica, а лишь генерирует новую реплику, содержащей только изменения по отношению с предыдущей синхронизацией. Так вот, при первом импорте CC создаст VOB с тем именем, которое указано при импорте. Для использования пакета необходимо его смонтировать и построить требуемые виды.
  3. Измененный, отреплицированный VOB возвращают обратно, передавшему серверу.

Прелесть MultiSite при синхронизации реплик заключается в том, что если за время, прошедшее с момента передачи предыдущей реплики, VOB никак не был изменен, то и реплика не будет создаваться и пересылаться, поднимая до поднебесья трафик компании.

Отдельно хочется поговорить о передаче прав на изменение (команда "chmaster"), что позволит не только реплицировать копию VOB, но и передать права на ее правку. Права можно передать как на один элемент, так и на целую группу.

Во избежание путаницы, связанной с тем кто, когда, и для кого создавал реплику, MultiSite предоставляет полную статистическую выкладку по синхронизациям для каждого конкретного VOB, при помощи команды "lsreplica".

Как видите, MultiSite продукт весьма нужный и весьма важный в тех случаях, когда необходимо связать в один проект удаленные группы разработчиков, которые смогут, пользуясь всеми преимуществами программы ClearCase и не выходя из офиса, создавать и контролировать разрабатываемое программное обеспечение.

Интеграция с Visual Studio

Компания Rational очень тесно сотрудничает с Microsoft в области информационных технологий, посему все программные продукты от Rational тем или иным образом интегрируются в первую очередь со средами разработки от MS.

Рис.14

Соответственно, тесная интеграция поддерживается для Visual C++ и Visual Basic. Пользователь, находящийся в данных средах, получает полный набор средств для версионного контроля, не выходя из среды разработки. В принципе, любой программист может разрабатывать что угодно в любой среде, но все операции по контролю производить из ClearCase Detail, контролируя самостоятельно все состояния для каждого отдельного элемента.

При "правильно" установленном Visual Studio, возможна работа утилиты сборки из состава ClearCase. Под "правильной" установкой подразумевается подключение
возможности компиляции из командной строки (на одном из последних шагов Visual Studio спросит о создании соответствующих изменений).

Интеграция с VS состоит в появлении ряда функций в подпункте Source Control меню Project, и позволяющий осуществлять обращения к ClearCase не напрямую, а через данный пункт (см. рисунок 14). Как видно из содержимого окна, подобная интеграция подразумевает использование наиболее употребительных функций, ежедневно необходимых для полноценной работы членов команды. Интересный пункт, о котором мы ранее не говорили, - "Get Latest Version", позволяющий получить доступ к последней версии. Необходимость использования данного пункта возникает при работе со Snapshot Views, когда есть необходимость обновлять (синхронизировать), при использовании же динамических видов необходимость в этом пункте отпадает, да и ClearCase, не позволит воспользоваться командой.

Естественно, что когда речь заходит о работе с определенным продуктом, то на первое место выходит методология работы с ним: описание механизмов взаимодействия, последовательность действий, и так далее. Интегрировав таким образом две программы встает вопрос: а как дальше работать? Решение может быть следующего вида и характера:

  1. Создается репозиторий, на его основе строятся виды с использованием различных профилей
  2. Создается древовидная структура в виде. Следуя методологии Rational, каждому члену
    рис. 15
    команды - свою директорию (менеджерам, разработчикам, техническим писателям…)
  3. Для разработчиков Rational рекомендует использовать отдельные директории для кода, библиотек, исходных текстов, заголовков. Здесь нет ничего нового и неожиданного - того, чем никто раньше не пользовался бы. Это все те же: SRC, INCLUDE, LIB, BIN… Но раз мы пользуемся продуктами и методологиями Rational, то не нужно раздражаться от лишних напоминаний о грамотном построении проекта
  4. Все директории, созданные для проекта, также необходимо ставить под контроль, поскольку, как
    говорилось выше, ClearCAse это не только версионный контроль, в чисто файловом исполнении, он способен на большее, например, отслеживать и хронологизировать миграцию проектных файлов по директориям
  5. Любой проект создается в виде (динамическом или снапшот - неважно)
  6. Файлы ставятся под контроль либо из ClearCase Detail либо из Visual Studio посредством контекстного меню из Workspace
  7. Дальнейшую же работу можно также построить полностью без выхода из Visual Studio либо при помощи макросов, либо настройкой Tools, соответствующими вызовами ClearCase

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

ClearCase имеет в своем арсенале такой мощный механизм, как сборщик проектов, позволяющий компилировать и собирать проекты. Утилита, помогающая в данной работе носит название "omake"

Рис.15(а)

. Ее основная задача - сборка проекта на основе Make-файла. Прелесть же заключается в том, что в нем (Make-файле) можно включать в компиляцию не только последние версии файлов, как это принято, но и любые другие версии, к которым явно указан путь по ответвлениям (выше в 3 части, мы уже говорили о пути к элементу). К сожалению, данная утилита достаточно объемна, и под нее будет выведена если не новая статья, то новая глава - это уж точно! В данном контексте мы просто рассмотрим, как ее вызвать из Visual Studio с обычным набором параметров - без излишеств.

Выполнить это несложно, необходимо лишь воспользоваться инструментарием, имеющемся в составе Visual C++, по вызову внешних модулей. Вызываем Tools-->Customize, создаем новую запись с именем "omake" и вносим информацию, как показано на рисунке 15. В качестве аргументов, передаем имя рабочей директории и имя проекта. Для работы всего хозяйства в Visual Studio необходимо построить MAK-файл. Делается это при помощи "Project->Export MakeFile". После чего в проектном каталоге появляется Make файл, соответственно оформленный и готовый к использованию. Преимуществом "omake" можно считать его независимость относительно используемого компилятора. То есть, возможно использование любого компилятора командной строки, собирающего проекты по make-файлам.

На следующем рисунке (15а) показан пример внесения новой команды, в инструментарий Visual Studio, команды модуля MultiTool, позволяющей получить список всех реплик для указанного VOB.

Как видите, ClearCase достаточно тесно встраивается в Visual C++, добавляя к стандартным возможностям продукта мощную систему версионного контроля для крупных команд. В тех же случаях, когда отдельному разработчику недостает определенных функций, всегда есть возможность дополнить стандартный инструментарий собственными расширениями, так, как показано выше.

Генерация отчетов

Еще одна немаловажная задача, которую необходимо решить при работе над проектом - это написание проектной документации и различных отчетов. Имея в своем распоряжении увесистый репозиторий, массу видов и подконтрольных элементов, будет трудно составить вручную отчет, просматривая все данные с экрана компьютера. Такую работу можно считать непродуктивной и неправильной, хотя и имеющей право на существование, ведь не всем доступны такие мощные и продвинутые методологии и инструменты, которые предлагает Rational Software. Дело в том, что для такой цели как генерация отчета существует продукт SoDA, встраиваемый в MS Word. Он позволяет строить отчеты по заранее заготовленным шаблонам. Отчет строится в соответствии с выбранным продуктом (поскольку генерация отчета для ClearCase вещь частная). Продукты, поддерживаемые генератором отчетов: Rational Rose, Requisite PRO, ClearCase.
Рис.16
Это значит, что любой человек, взявшийся за написание проектной документации или отчета получает универсальный инструмент, работающий в самом популярном текстовом редакторе и позволяющий легко получить шаблон для одной из программ от Rational и добавить в него комментарии сообразно поставленной задаче.

Попробуем в режиме наглядной агитации рассмотреть возможности SoDA, годящиеся для использования совместно с ClearCase, для чего создаем новый репозиторий, виды, вносим некоторое количество файлов. Для создания шаблона вызовем приложение "SoDA getting Started". Поскольку сама сода - продукт встраиваемый в Word и неспособный функционировать отдельно, то SoDA автоматически вызовет сам Word, и ссылку на себя поместит в верхнее меню. Результатом выполненых действий будет появление диалога с предложением выбора типа шаблона, который предстоит генерировать. На рисунке 16 показан внешний вид окна с подобным запросом. В случае с ClearCase доступны следующие виды заранее составленных шаблонов, каждый из которых составляет специфический отчет:

Activity

По своим возможностям сода, конечно же, не самый насыщенный инструмент в линейке продуктов Rational, но четко справляющийся со своими прямыми обязанностями - с генерацией отчетов.

По усмотрению пользователя шаблон может быть создан как стандартный отчет, из вышеперечисленных, так и настраиваемый при помощи "волшебника".

Ниже приводится пример сгенерированного отчета по состоянию элемента. В качестве элемента используется файл project_so.h. Внимательно всмотритесь в отчет, по-моему, его даже не нужно комментировать - все ясно, понятно и наглядно!

ELEMENT

Report on Element Z:\Tempa\src\project_so\project_so.h@@

   Path: Z:\Tempa\src\project_so\project_so.h
   Description: 
   Element Type: text_file 
   Master: N/A 
   Owner: NOVICHKOV\Administrator 
   Is Directory: False VOB
   Name: \Tempa 
   Date Created: Friday, April 07, 2000 13:28:59 
   Created By: Administrator 

Versions

   Name: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\0 
   Number: 0 
   Is Latest: False 
   Description: 
   Date: Friday, April 07, 2000 13:28:59 
   User Name: Administrator 
   Labels: Branches: 
   Name: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\1 
   Number: 1 
   Is Latest: False 
   Description: 
   Date: Friday, April 07, 2000 13:32:40 
   User Name: Administrator 
   Labels: Branches: 
   Name: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\2 
   Number: 2 
   Is Latest: False 
   Description: Second 
   Date: Friday, April 07, 2000 13:36:10 
   User Name: Administrator 
   Labels: Branches: 
   Name: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\3 
   Number: 3 
   Is Latest: False 
   Description: 
   Date: Friday, April 07, 2000 13:40:15 
   User Name: Administrator 
   Labels: Branches: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\alex
   Name: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\alex\0 
   Number: 0 
   Is Latest: False 
   Description: 
   Date: Friday, April 07, 2000 13:42:41 
   User Name: Administrator 
   Labels: Branches: 
   Name: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\alex\1 
   Number: 1 
   Is Latest: True 
   Description: ALex 
   Date: Friday, April 07, 2000 13:43:43 
   User Name: Administrator 
   Labels: Branches: 
   Name: M:\First_dyn_view\Tempa\src\project_so\project_so.h@@\main\4 
   Number: 4 
   Is Latest: True 
   Description: Соединение 
   Date: Friday, April 07, 2000 13:45:41 
   User Name: Administrator 
   Labels: Branches: 
 

Приложения

Рано или поздно, работая над программным проектом, группы программистов, тестировщиков и менеджеров проекта, сталкиваются с проблемой усложнения отслеживания версий файлов проекта, внесения в них изменений, и получения детализированного состояния текущего проекта: "КТО и КОГДА". Ведь чем больше проект, тем больше времени разработчики тратят на согласование изменений в исходных текстах, создание деревьев версий модулей и отдельных файлов проекта, написание проектной документации, обновляемой по ходу проекта.

Это лишь малая часть всех "ужасов", сопровождающих команду разработчиков на всем жизненном цикле проекта: от идеи до поддержки готового программного продукта. А малая она еще потому, что здесь не получили отражение такие мелочи как: время разработки проекта и стоимость оплаты труда группы разработчиков. Ведь ни для кого не секрет, что редкий проект укладывается в запланированные сроки, и уж совсем большая редкость - когда проект выходит в срок, и в нем реализованы все запланированные идеи!

Компания Rational для решения всех описанных вопросов выпускает целый спектр программного обеспечения, предназначенного для заполнения всех экологических ниш, связанных с разработкой - попросту предоставляя конкретный продукт для конкретного этапа в создании программного продукта (реализации проекта).

Ниже мы рассмотрим систему конфигурационного и версионного управления ClearCase. А точнее его новую версию - 4.0. Как и все предыдущие реализации данного продукта, новая версия представляет собой высококачественный продукт.

В новой версии ClearCase получил более продвинутый графический интерфейс, в частности - новую консоль администратора (VOB Administrator), как и раньше не остались без внимания и любители командной строки - в новой версии добавлены новые команды, облегчающие работу с VOB и VIEW, а также расширенная справочная система, доступная из командной строки (команда man). Нелишне будет отметить новый формат VOB, призванный облегчить администрирование и контроль файлов (формат VOB задается отдельно, Вы сами вправе выбрать его тип: 4.0 или 3.2.1).

Новшеством для ClearCase также можно считать появившуюся возможность получения доступа к файлам проекта через Internet, для чего на сервере необходимо установить одну из программ для организации WEB сервера (для тестирования мы применяли Internet Information Server версии), а на клиентской части достаточно иметь, собственно, ClearCase и любой броузер и подключение к сети.

Компания Rational достаточно много времени уделила улучшению интеграции своих продуктов со средствами разработки и документирования, поставляемых Microsoft. В частности ClearCase теперь встраивается в Microsoft Word, позволяя производить все операции сравнения и сливания над всеми форматами файлов, которые понимает Word. И еще важное новшество, которое поможет WEB-разработчикам - ClearCase тесно интегрируется с MS FrontPage, понимая файлы *.XML, *.HTML.

Отдельно хочется отметить и поощрить стремление компании больше времени уделять графической оболочке без ущерба командной строки. Новая версия позволяет в наглядном режиме работать над проектом, лишь изредка прибегая к помощи командной строки. Субъективно - новая версия создает впечатление хорошо переработанного продукта, направленного на улучшение диалога "человек-машина". Теперь все возможности ClearCase можно понять с первого раза и без особых усилий.

ClearCase 4.0

Поддерживаемые платформы
Windows NT 4.0, Build 1381 (SP3, SP4, SP5)
Windows 2000, Build 2128 (RC 2)
Windows 95/98 (все версии и релизы, но только ClearCase - без MultiSite)

Поддерживаемые файловые системы
Windows NT 4.0 - FAT, NTFS, LANMAN, NFS
Windows 2000 - FAT, FAT32, NTFS, LANMAN
Windows 95/98 - FAT, FAT32

Unified Change Management

Данная реализация поддерживает модель out-of-the-box, включающая мощный набор инструментов для управления и конфигурирования среды разработчика. Для менеджеров проекта и интеграторов, UCM автоматически осуществляет политику разработчика.
Поддерживаются следующие концепции:
Activities, Components, Baselines, Projects, Streams, Project VOB

Добавлены новые команды и интерфейс для UCM
Команды: Chbl, lsbl, mkbl….. Всего добавлено 30 команд.
Интерфейс: ProjectExplorer, Create Project Wizard, Join Project Wizard, Deliver (dialog box), Rebase (d.b.), Component Tree Browser, Compare Baselines

ClearCase WEB Interface

Как говорилось выше, в новой версии стало возможно получать доступ к проектным файлам через WEB страницы. Данный способ позволяет подключаться как к Dynamic View, так и к Snapshot View.

Новые типы файлов и программ, поддерживаемых ClearCase
Ниже приведены названия программ и расширения, поддерживаемые ClearCase 4.0
Front Page HTML, HTM, XML
Microsoft Word DOC
Rational Rose CAT, MDL, PTL, PTY, PRP, PRC, SUB

Переработана консоль администратора

ClearCase для Windows NT получил новую административную консоль, которая позволяет легко контролировать состояние проекта на любом уровне иерархии. Новая панель администратора реализована как snap-ins Microsoft Management Console (MMC).

Увеличен кэш для видов

Теперь величина кэшей поднята до 500КБ для 32 битных платформ, и 1000Кб для 64 битных платформ.

Новый формат VOB

К особенностям данного формата можно отнести возможность обработки большого количества записей в базе. Сейчас величина записей составляет 16 миллионов, а размер файлов до двух гигабайт. Также новый формат более тесно сотрудничает с Windows NT, позволяя получать полную сопроводительную информацию о типе файла при просмотре в доменах NT. Старые VOB можно конвертировать в новый тип, при помощи специальной команды.

Доступ к данным без установки ClearCase

Теперь стало возможным получать доступ к файлам проекта без установки клиентской части ClearCase. Такая возможность предоставляется через WEB интерфейс и через удаленный доступ к snapshot видам.

Изменение документации

Реорганизована и реструктурирована документация.

Новое в MultiSite 4.0

Как известно, MultiSite представляет собой специальный модуль, позволяющий регионально удаленным командам разработчиков обмениваться копиями VOB. При этом MultiSite берет на себя синхронизацию посылаемых и отправляемых пакетов (реплик) и передачу прав доступа.

Подробнее о MultiSite читайте в следующих частях, а сейчас, для владеющих продуктом, перечислим новые возможности версии 4.0:

Новый скрипт синхронизации

Теперь стало возможным использовать скрипт "sync_export_list" для автоматического экспорта реплики. В свою очередь, скрипт "sync_receive" позволит автоматически принять реплику. Скрипт присваивает каждой реплике уникальное имя.

Новый механизм синхронизации

Существующий механизм cleartool schedule заменен новым методом "at" для лучшего планирования синхронизаций операций импорта/экспорта.

Добавлены новые команды

Lsepoch и chepoch. Выводят на экран текущее состояние переданной реплики и позволяют обновлять и изменять номера матриц. А команды chmaster и reqmaster теперь доступны из cleartool.

Новые максимальные значения на размер передаваемого пакета

Максимальный размер пакета по умолчанию составляет 2097151Kb Данное ограничение действует при вызове команд mkreplica или syncreplica с ключами -ship и -fship

Ответы на часто задаваемые вопросы по версиям 3.2.1 и 4.0

Вопрос: Под каким сервис паком в Windows NT нормально работает ClearCase 3.2.1?
Ответ: Нормальная работа для данной версии гарантируется при работе только с ТРЕТЬИМ сервис паком

Вопрос: Является ли MultiSite отдельным программным продуктом?
Ответ: Нет. MultiSite является подмодулем программы ClearCase

Вопрос: Опишите принцип работы MultiSite?
Ответ: Работа MultiSite заключается в формировании реплик (копий баз данных проекта), которые могут быть переданы на другой сайт посредством дискет, электронной почты, Интернет. Работа над проектом производится на нескольких сайтах параллельно и независимо. Для синхронизации организуется обмен репликами. Работа с MultiSite осуществляется только из командной строки, посредством нескольких команд.. Реплика может передаваться сразу на несколько сайтов.

Вопрос: Что нужно для того, чтобы заработал MultiSite?
Ответ: Необходимо получить лицензию на его использование (дополнительно к той, которая получена на ClearCase)

Вопрос: Можно ли передавать при помощи MultiSite данные не через интернет?
Ответ: Да, такая функция модулем предусмотрена. По сути, передача через интернет - это всего лишь один из нескольких способов передачи информации. Также передачу можно осуществить через любое запоминающее устройство (отослав, впоследствии носитель с репликой курьером, в указанное место) или электронную почту. Правда, в таком случае, Вы лишаетесь оперативности.

Вопрос: Что такое VOB. Его особенности ?
Ответ: VOB (Version Object Base) - специальная база данных (репозиторий) программы ClearCase. В ней хранится вся информация о текущем состоянии проекта. На физическом уровне VOB представляет собой совокупность директорий и файлов. К сожалению, работа на физическом уровне невозможна, в силу того, что для ведения базы используется внутренний формат базы. Однако для контроля VOB существует более высокий уровень работы: через командную строку илиграфическую оболочку. Любой VOB создается, изменяется и удаляется средствами программы.

Вопрос: Что такое View?
Ответ: View (просмотр) специальное средство, позволяющее вести контроль над репозиторием. Попросту View позволяет производить и контролировать все операции доступные над репозиторием. View позволяет в наглядной форме класть под контроль изменять и редактировать файлы. Причем отображаться на экране будут не все версии отдельного файла, а, например, только последние (либо другая, указанная конкретно).

Вопрос: Какие типы файлов можно ставить под контроль ClearCase?
Ответ: Под управление ClearCase можно ставить текстовые файлы, файлы проектов, объектные файлы… На самом деле, положить под контроль можно практически любой файл (неизвестный заранее СС). В этом случае вы лишаетесь таких мощных возможностей программы как: сравнение и объединение.

Вопрос: Обязательно ли при использовании MultiSite обмениваться полными репликами Vob?
Ответ: Нет. Полная реплика передается только один раз, в самом начале, в дальнейшем же можно и нужно передавать только изменения, касающиеся данного VOB (такой вид реплики в ClearCase носит название SyncReplica - синхронизация). Есть еще и второй способ, при котором MultiSite можно настроить таким образом, что он автоматически будет передавать синхронизационные пакеты. Дабы не повышать трафик MultiSite не отсылает реплики неизменного VOB'а.

Вопрос: Совместимы ли PVCS и CleraCase?
Ответ: Как таковые - НЕТ, но в CleraCase есть возможность конвертации проекта из PVCS

Вопрос: Существует ли какой ни будь встроенный способ шифрования данных при передаче их при помощи MultiSite?
Ответ: Нет, такой возможности - нет. Но так как MultiSite может пересылать пакеты не только напрямую, но и через электронную почту, создавая для начала синхронизационный пакет в виде файла. Так, вот этот файл и можно шифровать любым доступным способом.

Вопрос: Можно ли осуществлять (и при помощи чего) документирование содержимого проекта?
Ответ: Да, можно. Для этого существует пакет Rational SoDA, который и строит подобную документацию на базе установленных шаблонов. Соответственно, исходя из полной совместимости SoDA с MS Word - разработчик получает готовый к дальнейшему редактированию документ в общепринятом формате.

Вопрос: На каких платформах реализован ClearCase?
Ответ: Официальная информация от Rational по поводу версии 4.0:
Compaq Tru64 UNIX;
Hewlett-Packard HP-UX;
IBM AIX;
NCR MP-RAS;
Red Hat Linux;
SCO UnixWare;
Siemens Reliant UNIX;
Silicon Graphics IRIX;
Sun Solaris SPARC,
Solaris Intel;
Windows 95, 98 (только клиентские части);
Windows NT;
Windows 2000;

Вопрос: Какие WEB сервера поддерживаются модулем MultiSite?
Ответ: Поддерживаются:
Apache;
Microsoft IIS;
Netscape

Дополнительная информация

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

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

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

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