Команды командой строки ClearCase Новичков Александр www.cmcons.com [email protected] • Внешние • Внутренние • Наличие командных интерпретаторов – ClearTool – MultiTool • • • • • Непосредственный режим Пакетный режим Вызов из скриптовых языков Вызов через COM API Поддерживается перенаправление вывода (stdin\stdout) -graphical - Для выдачи результатов вызывает графическое окно. -long - Подробная информация -full - Данный переключатель, в некоторых командах, может замещать предыдущий -short - Краткая выдача -comment «комментарий» комменирование активного действия -nc - Ключ ставит для операции пустой • ls – Выводит на экран список элементов текущей или указанной директории • ls –long – Вывести полную информацию о элементах из текущей директории • ls –nxn – Вывести сокращенную информацию о элементах из текущей директории • lshistory – Список правок элемента. Работает на основе простого языка запросов. Поддерживает вывод в файл. На его основе можно составлять периодическую отчетность с ограничением по пользователям, мажорной и минорной датам • Lshistory main.cpp – Вывод истории изменений для файла main.cpp. Вывод осуществляется для всех ответвлений • lshistory -long lbtype:REL1 . – Вывод истории изменений элементов текущей директории, у которых есть метка REL1 • lshistory -user admin -a -minor -since 20-mar-99.15:00 • lspriv – Выводит на экран список личных элементов. Причем, в СС личные файлы выделяются не на конкретного пользователя, а на конкретный вид. Тем самым, если на локальной машине пользователя 3 разных вида, то для каждого из них выделяется свое, изолированное от остальных, личное пространство. • lsprivate -invob M:\Development\Vob\src – Выводит список личных объектов для директории src, репозитория Vob. Поиск ведется по глобальному доступу, через букву M • lsprivate -long – Выводит список личных объектов для всех репозиториев • lsview – Выводит список видов. По умолчанию выводит список видов для текущего компьютера, но может выводить список и отдельно по компьютерам, находящихся в домене. • lsview -long – Вывести список видов с полной информацией для текущего компьютера • lsview -host asteroid – Вывести стандартный список видов для компьютера asteroid • lsview -properties -full – Вывести расширенный список видов со свойствами для компьютера asteroid • lsvob – Выводит список репозиториев. По умолчанию выводит список репозиториев для текущего компьютера, но может также выводить список и отдельно по компьютерам, находящихся в домене • lsvob -long \vob12 – Вывести полную информацию о репозитории vob12 • lsvob -graphical –region windows – Отобразить графически список репозиториев региона windows • lsvob –host asteroid – Отобразить список репозиториев для указанного компьютера • lsvtree – Выводит на экран дерево версий элемента. В зависимости от настроек может выдавать дерево версий как для одного элемента, так и для группы. • lsvtree util.c – Вывести дерево версий для файла util.c (в консоль) • lsvtree –g util.c – Вывести дерево версий для файла util.c (в виде окна, в графическом исполнении) • lsvtree –all – Вывести дерево версий для каждого элемента • lsvtree -branch \main\Rel2.0BugFix -all util.c – Вывести фрагмент истории, только для версий бренча Rel2.0BugFix • lstype – Просмотреть список метаданных по типам • Lstype –kind lbtype – Вывести список типов меток с характеристиками (для текущего репозитория) • Lstype –kind brtype – Вывести список типов ответвлений с характеристиками (для текущего репозитория) • lstype -fmt "%n %c \n" -kind lbtype – Вывести список типов ответвлений с использованием форматного вывода • lslock – Выводит список заблокированных объектов. Данная команда часто используется администраторами проектов для поиска блокированных элементов, в тех случаях когда невозможно выполнить определенные манипуляции над репозиторием. • lsco – Выводит на экран список элементов находящихся на редактировании (в состоянии check-out) – Обычно применяется для быстрого поиска файлов, находящихся на редактировании, так как многие глобальные действия с базой СС, предусматривают, что все элементы находятся в состоянии check-in • lscheckout -short – Вывести список файлов, находящихся в данном состоянии. Поиск ведется для текущей директории, вывод осуществляется в сокращенном формате • lscheckout -recurse –user admin – Рекурсивно вывести список файлов, находящихся в • mkvob – Создание репозитория. Основная команда СС, без особых отличительных способностей. Исключение составляет платформа UNIX, так как там формат команды намного сложнее Windows-аналога • mkvob -nc -tag \Allo \\comp1\stg\vobs\ssa.vbs – Создать репозиторий с именем \Allo, расположив его по указанному пути. – Обратим внимание на ключ команды “-ucmproject”. Он необходим при работе с СС в рамках UCM. При использовании данного ключа создаётся проектный репозиторий: • mkvob -tag \pvob1 -ucmproject -c “demo” -region Windows \\sash\stg\vobs\pvob1.vbs • mkview – Создать вид. В зависимости от параметров создает либо статический, либо динамический вид. При создании динамического вида данной командой создается лишь само представление, но не создается ассоциация с буквой диска. Следует отметить ключ “stream” данной команды. Он применяется при работе с СС в рамках UCM для прикрепления вида к какому-либо потоку. • mkview -tag Development \\alexgolder\stg\views\Development.vws – Создать вид с именем Development, сохранив его по указанному адресу • net use * \\view\Development – Создать сетевой диск Development, с присвоением произвольной буквы • mkview -tag int_view -region Windows -stream int_str@\pvob1 \\sash\stg\views\int_view.vws • mount – Смонтировать один или несколько репозиториев • Mount \Allo – Смонтировать репозиторий \Allo • umount – Размонтирует репозитории. Участник проекта оговаривает свое присутствие в проектах методом монтирования/размонтирования. В качестве особенности команды вынесем невозможность размонтирования репозитория в том случае если одно или несколько приложений работают с его данными. • Umount -all – Размонтировать все репиозитории • Umount \Seminar – Размонтировать репозиторий с указанным именем • mkelem – Создать элемент. Используется для постановки под контроль данных. Для постановки под управления данные должны находится в виде. • mkelem -nc -ci main.cpp – Создать элемент main.cpp (по умолчанию – текстовый файл), без комментирования процесса. Результирующее состояние файла после операции – check-in • mkelem -nc main.cpp – Создать элемент main.cpp (по умолчанию – текстовый файл), без комментирования процесса. Результирующее состояние файла после операции – check-out • mkelem -nc -eltype zip_archive arch.zip – Создать элемент arch.zip, с присвоением ему типа zip_archive • mkdir – Создать директорию. Создание директорий в проектах на динамических видах возможно только при помощи команд СС. Впрочем, их можно создавать и обычными командами, только невозможно потом поставить под версионное управление. • Mkdir –nc Source – Создать директорию Source, без применения комментария • mkdir -nco -c "demo" M:\int_view\vob1\files – Создать директорию без постановки её в состояние редактирования (checkout). • cd – Сменить директорию. Обычная системная команда, дополнительно реализованная в интерпретаторе СС • Cd .. – Перейти на уровень выше • Cd m:\myvob – Перейти в указанный VOB (в корневую директорию репозитория) • checkin – Перевести элемент в данное состояние (зарегистрировать в базе) • Ci –nc . – Зарегистрировать текущую директорию. Операцию проводить без присвоения комментариев • Ci –c “first out” main.cpp – Зарегистрировать файл с присвоением комментария • Ci main.cpp – Зарегистрировать файл. Во время регистрации СС дополнительно запросит комментарий для данной операции • checkout – Вывести файл в данное состояние для внесения в него изменений • Co –nc . – Вывести в режим редактирования текущую директорию (без комментария) • Co –c “Правка” main.cpp • uncheckout – Вернуть элемент в предыдущее состояние. Команда является аналогом кнопки undo checkout из GUI. Измененный файл записывается как личный (private object) с расширением keep. • Uncheckout main.cpp – Провести команду uncheckout для файла main.cpp. Команда исполнится если файл уже находится в состоянии check-out • mklbtype – Создать тип метки • mklbtype -c "Релиз 2.0" Rel2.0 – Создать тип метки Rel2.0 (с комментарием, одну на элемент) • mklbtype -nc -pbranch Rel3.0 – Создать тип метки Rel3.0 (без комментария, одну на ответвление) • mklabel – Присвоить метку одному элементу или группе элементов по определенному признаку. Механизм меток используется для получения компилирующегося релиза, а впоследствии, при редактировании релиза, для создания ответвлений. • mklabel -recurse Rel6.0 . – Назначить тип метки Rel6.0 для всех элементов, расположенных в текущей директории и во всех дочерних поддиректориях • mklabel -recurse -version /main/1 Rel1.0 *.cpp – Назначить метку Rel1.0 всем файлам, с расширением cpp, • mkbrtype – Создать тип ответвления для последующего назначения элементам • mkbrtype -c "Отладочный релиз для версии 2.0" Rel2.0BugFix – Создать отладочный релиз Rel2.0BugFix с присвоением комментария (один релиз на элемент) • mkbrtype –pbranch -c "Отладочный релиз для версии 2.1" Rel2.1BugFix – Создать отладочный релиз Rel2.йBugFix с присвоением комментария (одно ответвление для одного бренча) • mkbranch – Назначить тип ответвления конкретному элементу, выведя его в состояние СО. Рекурсивный вызов для данной операции не поддерживается. Команда служит для принудительного создания ответвлений, что иногда является необходимым. • mkbranch -nc bugfix util.h – Создать ответвление bugfix для последней версии util.h, и вывести его в состояние chek-out • mkbranch -version \main\1 -nc Rel3.0BugFix util.c – Создать ответвление Rel3.0BugFix от версии 1 файла util.c, без комментирования операции. Результирующее состояние версии • mkattype – Создать тип атрибута для последующего назначения элементам • mkattype -nc Additional – Создать атрибут по умолчанию • mkattype -nc -vpbranch -vtype integer -gt 0 -le 10 Errors – Создать атрибут Errors, тип значений которого, Ineger. Задать пределы для ввода: от 0 до 10 • mkattype -nc -enum ‘"НЕТ","ДА","в процессе"’ Tested – Создать атрибут Tested, с тремя предопределенными состояниями • mkattr – Назначить имеющийся тип атрибута определенной версии элемента. Команда может выполнять действия по назначению атрибутов рекурсивно для всех каталогов проекта. • mkattr Tested \"ДА\" hello.h – Назначить созданный атрибут Tested на файл hello.h, с • rmview – Физическое удаление вида, для удаления необходимо указать путь до физического расположения View. Команда уничтожает логическое имя (тег) и очищает директорию vws, используемую видом. Для удаления можно использовать как физический путь, так и имя тега. • Rmview –f –tag Development – Удалить вид по его логическому имени • Rmview –f \\comp1\stg\views\Development.vws – Удалить вид по его адресу на носителе • rmview -vob \Sem -uuid 370c4440.76e311d6.a85c.00:a0:c9:3b:f1:04 – Удалить все версии файлов, находящихся в состоянии check-out из репозитория \Sem. Удаляются только те версии файлов, которые принадлежат виду с идентификатором 370c4440.76e311d6.a85c.00:a0:c9:3b:f1:04. Данная команда используется администраторами, в тех случаях, когда в репозитории случайно остались файлы в состоянии check-out, зарезервированные за уже удаленными видами. Особенность ведения управления в СС заключается в том, что каждая версия элемента имеет уникальный uuid, основанный на имени того вида, • rmvob – Физическое удаление репозитория со всеми данными. • rmvob \\comp1\stg\vobs\vb.vbs • rmver – Удаление версии или диапазона версий с дерева версий элемента. rmver main.cpp – Удалить текущую версию элемента для данного вида • rmver –version /main/3 main.cpp – Удалить версию 3 с основного ответвления • rmver –xla –xbr –version /main/3 main.cpp – Удалить 3 версию с основного ответвления, невзирая на возможные метки и ответвления. Если от версии отходит ответвление, то оно также будет удалено со всеми собственными ответвлениями • rmver -vrange \main\1 \main\LATEST main.cpp – Удалить диапазон версий: от 1 до последней элемента main.cpp • rmname – Удалить имя элемента. Данная команда может быть использована для удаления элемента из текущей версии директории (при вводе команды директория должна находиться в состоянии check-out). Рекомендуется к использованию вместо rmelem, так как не удаляет данные физически из репозитория. • Rmname main.cpp – Удалить элемент из состава текущей директории • rmname -nco .@@\main\2\main.cpp – Удалить элемент main.cpp из второй версии текущей директорий, без вывода ее в состояние check-out • rmlabel – Удалить метку с элемента • rmlabel -version \main\Rel2.0 Rel2.0 main.cpp – Удалить версию Rel2.0 с указанного адреса (подразумевается, что меток с именем Rel2.0 несколько, а удаление необходимо произвести только той, которая расположена основной ветви) • rmlabel Rel2.0 main.cpp – Удалить метку с элемента (подразумевается, что метка одна на элемент) • rmbranch – Удалить ответвление • mbranch main.cpp@@/main/Rel1.0BugFix – Удалить ответвление Rel1.0BugFix с дерева версий файла main.cpp • rmattr – Удалить атрибут • Rmattr Tested main.cpp – Удалить атрибут Tested с элемента main.cpp • rmattr -version '\main\{Tested=="Нет"}' Tested main.cpp – Удалить значение НЕТ атрибута Tested с элемента main.cpp • rmattr -version \main\3 Tested main.cpp – Удалить атрибут Tested с 3 версии файла main.cpp • rmelem – Удаление элемента с деревом версий из репозитория без возможности восстановления. • Rmelem main.cpp – Удалить файл main.cpp • Rmelem dir1 – Удалить директорию dir1 • Для функционирования серверной и клиентских частей на платформе Windows (NT, XP, 2000) ClearCase использует ряд сервисов и серверов. – Сервисы используются для предоставления доступа к данными репозитория. – Серверы отвечают за интерфейс между пользователем (клиентом) и сервером. • Сервисы: – Location broker (albd_server) – Lock manager (lockmgr) • Серверы: – – – – Database server (db_server) View server (view_server) VOB server (vob_server) RPC server (vobrpc_server) • Сервисы Clear Home Base. Administrative Tools Services Atria Location Broker (ALBD) • Atria Location Broker (ALBD): – Сервис исполняется на каждой машине. Сконфигурирован как лог-он сервис. Запускать и останавливать данный сервис может только администратор, либо лицо, находящееся в группе «ClearCase». Администратор запускает или останавливает сервис единожды, после чего любой пользователь на данной машине может использовать ClearCase (единожды запущенным, сервис исполняется при загрузке каждый раз независимо от имени пользователя). Запуск сервиса требует лицензирования (то есть сервер лицензий должен находиться в пределах видимости сети). Сервис стартует первым. После его старта запускаются остальные, в зависимости от необходимости Lock Manager • Lock Manager: – Контроль транзакций ко всем VOB на данном компьютере Multi-Version File System (MVFS) • Multi-Version File System (MVFS): – Разрешает доступ к файловой системе MVFS посредством виртуальных дисков. Данный сервис находится в системе только в том случае, если при установке ClearCase была выбрана опция установки виртуальной файловой системы. Сервис запускается автоматически при загрузке операционной системы Credentials Manager • Credentials Manager: – Проверяет вошедшего пользователя (для динамических видов) • Серверы Серверы • Для работы с репозиториями (VOB) и видами (Views) на клиентских и серверных машинах запускаются соответствующие серверы – Views-сервер • Запускается для каждого активного вида. Сервер исполняется после albd. Срок жизни Views-сервер – окончание работы операционной системы, либо до закрытия или удаления данного вида. – Vob-сервер • Запускается для каждого зарегистрированного репозитория. Сервер исполняется после albd. Срок жизни – до удаления репозитория. • Лицензирование Лицензирование • ClearCase использует плавающий тип лицензий (floating license). • Плавающие лицензии имеют статичную память на 60 минут после первоначального проведения операции, требовавшей лицензирования • Статичная память не фиксирована и может быть изменена. Переменная статичного размещения лицензии варьируется от 30 до 60 минут Лицензирование Clear Home Base Administration Control Panel Licensing -license ClearCase TEMPORARY *.30 20010628 3af00bcc.f115e9da.0 2 Ключ Продукт Вид лицензии (временная или постоянная) Число лицензи й Дата окончани я действия лицензии Ключ лицензии Типы лицензий • Temporary • Permanent Доступ к лицензиям • При установке ClearCase определяется роль, которую будет выполнять сервер. Если указывается «use local host as license server», то данный компьютер становится сервером лицензий. Остальные машины в сети должны ссылаться на него (необходимо использовать пункт «use license server on host», введя в поле наименование сервера лицензий или его IP адрес) Ограничения и дополнения • Администратор может управлять настройками сервера лицензий, определяя такие ключевые параметры как статичное время, приоритет использования лицензий, и т.д. • Управление производится с сервера лицензий путем добавления специальных строк (ключей), идущих после описания лицензий Приоритет • Администратор может разрешить конфликтную ситуацию при распределении лицензий путем установки приоритета. Для этого необходимо причислить всех пользователей с присвоением приоритета. Приоритет определяется числами: 1 – наивысший приоритет, 2 средний. Если пользователь не специфицирован, то он имеет наименьший приоритет – user ivanov 1 Исключение пользователя • Администратор может запретить выдавать лицензию определенному пользователю, поставив ключ «-nuser». – nuser ivanov – nuser petrov Определение времени статичного хранения лицензии • Для определения статичного времени необходимо воспользоваться ключом «timeout» и задать время в минутах, по истечении которых лицензия будет возвращена на сервер лицензий (при отсутствии активных действий со стороны пользователя). • Время задается в минутах. • Диапазон от 30 до 60 минут. – timeout 32 • Настройка интеграции ClearCase и ClearQuest • Интеграция настраивается единожды администратором. • Интеграция происходит на уровне триггеров. Во время интеграции прописываются специальные триггеры. • Триггеры ставятся на три основные операции в ClearCase: – Check-out (на данную операцию приходятся два триггера); – Check-in; – Undo Check-out. • Интеграция осуществляется в двустороннем режиме, то есть, с одной стороны настраивается политика интеграции в ClearCase, а с другой, настраивается репозиторий ClearQuest на StartProgramsRational ClearCase Administration Integrations ClearQuest Configuration Integration • Открыть ClearQuest Designer (StartProgramsRational Suite EnterpriseClearQuest ClearQuest Designer) • В ClearQuest Designer открыть схему на основе которой построена база данных запросов Package Package Wizard • Из списка пакетов выбрать ClearCase • В появившемся окне выделить типы записей к которым будет осуществлена интеграции CC • • Перевести схему в состояние Checkin (File Check In) После успешной регистрации новой версии схемы необходимо провести обновление физической базы данных (наложить схему на СУБД) из пункта DatabaseUpgrade Database • Интеграция с Microsoft Visual Studio • ClearCase замещает собой стандартный Visual Source Safe • Все команды управления остаются прежними • Из Visual Studio возможно работать с обоими типами видов, имеющихся в ClearCase • При отсутствии интеграции с Omake компилировать проект или его часть можно любым стандартным образом • Из среды Visual Studio можно как открывать существующие проекты из репозиториев, так и создавать новые. В обоих случаях проекты находятся под управлением • Проект создается обычным образом. • Отличие в месте хранения. • Проект необходимо поместить на сетевой диск в репозиторий (если это динамический вид), либо в локальную директорию (если это статический вид) Все файлы являются личными (view-private) для созданного вида и не являются частью проекта. Доступны только локально (в проекте их не видно) Из среды дается команда Add To Source Control При постановке под контроль необходимо выбрать список подконтрольных файлов и ввести комментарий Все элементы… … под контролем • Стандартная • Через Omake • Omake дает на выходе Derived Objects • Объекты компиляции, в отличии от Viewprivate объектов, могут являться частью репозитория • Объекты компиляции хранят в себе историю о каждой перекомпиляции. • Каждая перекомпиляции является билдом. • Каждый билд имеет уникальный номер. • История билдов сохраняется. • Разработчик может откыть для остальных участников стабильный билд (сделать разделяемым StartProgramsRational ClearCase Administartion IntegrationsOmake Configuration Wizard. Omake проводит компиляцию на основе имеющегося MakeFile. Перед вызовом Omake необходимо провести операцию экспортирования MakeFile (и поддерживать его в актуальном состоянии). Экспорт проводится посредством вызова команды ProjectExport MakeFile • • • Вставить в CD-ROM диск с дистрибутивом ClearCase Запустить на исполнение файл \cpf\nt_i386\setup.exe В первом окне выбрать тип установки с предварительным запуском мастера подготовки сетевой инсталляции - Start the Site Preparation step of ClearCase Installation Нажать next • Определить директорию, в которую будет производиться установка ClearCase (используйте для установки директорию, где уже находятся продукты Rational. Если продукты Rational отсутствуют используйте любую директорию, например, C:\Program Files\Rational\ClearCase) • • Нажать next В окне ClearCase Server Options выбрать следующие пункты: Make storage locations on the server available to ClearCase clients for creating VOB storage – разрешить создавать репозитории клиентам; Make storage locations on the server available to ClearCase clients for creating view storage – разрешить создавать представления клиентам; Dynamic views (MVFS) – разрешить установку виртуальной файловой системы для динамических представлений (Multi Version File System); 16-bit built auditing – разрешить проводить сборку (компиляцию) из 16 разрядных систем; MultiSite – разрешить установку модуля, осуществляющего поддержку регионально • • Нажать далее В окне ClearCase Service Account выполнить следующее: В списке Account Domain выбрать наименование домена, в котором производится установка ClearCase; В поле Server Process User Name впишите имя пользователя, имеющего максимальные привилегии в управлении сервисами ClearCase и от имени которого проводится установка – Администратор В полях Password и Confirmation Password введите текущий пароль для данного пользователя Поле ClearCase Administrators Group Name (наименование группы пользователей с административными правами на ClearCase) оставить без изменений «clearcase» • В окне Administrative Information установить следующие параметры: В поле License Server ввести имя сервера, на который производится установка; В поле Registry Server ввести имя сервера, на который производится установка; Windows Registry Region оставить без изменений – «Windows»; SMTP Mail Server ввести имя сервера электронной почты. • • Нажать next В окне ClearCase License Keys ввести все имеющиеся у вас ключи на ClearCase и ClearCase Multisite (в поле вводится полное название ключа, начиная со слова –license) • • Нажать next В окне VOB DataBase Format установить номер используемой схемы репозитория 54 • • Нажать next В окне Remote Administration выбрать «do not allow any user to administer this computer remotely» для запрета удаленного управления сервером • • Нажать next В окне MVFS Settings выполнить: Выбрать Case insensitive MVFS для отключения чувствительности системы к регистру; Из списка The drive letter to reserve for mounting ClearCase dynamic view выбрать букву диска «М» (если буква занята, то выбрать любую свободную для сервера и для всех клиентов); Остальные пункты оставить в значениях по умолчанию • • Нажать next В окне ClearCase File Server выбрать пункт «No, disable CCFS for this installation» для отказа установки ClearCase file server, используемый для доступа к Unix машинам • • Нажать next В окне Start Menu Folder Selection, в поле Program Folder ввести имя папки в главном меню в которую будут помещены ярлыки для модулей ClearCase. По умолчанию Rational ClearCase. • • Нажать next В окне Administrative Start Menu Folder Selection ввести имя папки в главном меню для административных модулей ClearCase. По умолчанию Rational ClearCase Administration • • Нажать next Окно Start Menu Entries определяет точки входа в меню компонентов инсталляции. Выбрать все пункты для полной установки • Указать директорию, в которой создастся дистрибутив сетевой инсталляции netinst_2002.05.00. Оставить без изменений предложенный путь РЕГИСТРАЦИИ ЛИЦЕНЗИИ ПРЕДСТАВЛЕНИЯ WEB DOMAIN WEB клиент ClearCase Сервер ClearCase WEB клиент ClearCase WEB клиент ClearCase INTERNET INTRANET Клиент ClearCase Клиент ClearCase Клиент ClearCase Клиент ClearCase Клиент ClearCase VOBs Сервер1 Сервер2 VIEWs STG Сервер3 Profiles Сервер регистраций Сервер4 Projects