1.14k likes | 1.43k Views
Команды командой строки ClearCase. Новичков Александр www.cmcons.com alex-golder@cmcons.com. Внешние Внутренние Наличие командных интерпретаторов ClearTool MultiTool. Непосредственный режим Пакетный режим Вызов из скриптовых языков Вызов через COM API
E N D
Команды командой строки ClearCase Новичков Александр www.cmcons.com alex-golder@cmcons.com
Внешние • Внутренние • Наличие командных интерпретаторов • 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 • Вывод истории изменений, которые проводил пользователь admin начиная с указанной даты по текущую.
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 • Рекурсивно вывести список файлов, находящихся в состоянии СО. Вывод фильтруется для пользователя 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 \\alex-golder\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 • Создать вид и прикрепить его к потоку “int_str@\pvob1”.
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, без комментирования операции. Результирующее состояние версии check-in
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 несколько, а удаление необходимо произвести только той, которая расположена основной ветви) • rmlabelRel2.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)
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
Типы лицензий • Temporary • Permanent
Доступ к лицензиям • При установке ClearCase определяется роль, которую будет выполнять сервер. Если указывается «use local host as license server», то данный компьютер становится сервером лицензий. Остальные машины в сети должны ссылаться на него (необходимо использовать пункт «use license server on host», введя в поле наименование сервера лицензий или его IP адрес)
Ограничения и дополнения • Администратор может управлять настройками сервера лицензий, определяя такие ключевые параметры как статичное время, приоритет использования лицензий, и т.д. • Управление производится с сервера лицензий путем добавления специальных строк (ключей), идущих после описания лицензий