1 / 31

Глава 7

Глава 7. Конфигурационное управление с применением ClearCase Процесс сборки. Цели. Прочитав эту главу, вы сможете: Описывать возможности Clearmake и omake Понимать различия между неразделяемыми и разделяемыми DO Описывать как Clearmake и omake выполняют аудит сборки

sancho
Télécharger la présentation

Глава 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Глава 7 Конфигурационное управление с применением ClearCase Процесс сборки Глава 7

  2. Цели • Прочитав эту главу, вы сможете: • Описывать возможности Clearmake и omake • Понимать различия между неразделяемыми и разделяемыми DO • Описыватькак Clearmake и omakeвыполняют аудит сборки • Описыватькак Clearmake и omakeпозволяют разделять результаты сборки между разработчиками • Сохранять файлы аудита при выполнении Checkin исполняемых файлов Глава 7

  3. Clearmake и omake - Определение Варианты утилиты make, используемые в ClearCase и имеющие дополнительные возможности : Build audit – полный «bill-of-materials» (конфигурационная запись или CR) Автоматическое определение зависимостей между элементами сборки Специальный алгоритм сборки – гарантирует правильность результатов при параллельной разработоке Разделение результатов сборки между разработчиками Совместимость с make-файлами, полученными при использовании других вариантов make Глава 7

  4. Сравнение Clearmake иomake Обе утилиты являются исполняемыми и не являются подкомандами Cleartool. Clearmake - один из вариантов утилиты make в Unix. omakeсовместим совместим со сборщиками для платформы ПК такими как NMAKE Форматы make-файлов обеих утилит различны Clearmakeможет читать файлы BOS (спецификация опций разработки), содержащие макро определения make Обеим командам требуется Dynamic View для использования возможностей build-auditing Глава 7

  5. Работа из командной строки Стандартные опции make пишутся в нижнем регистре Опции Clearmake и omakeпишутся в верхнем регистре Опции, не имеющие аргументов, могут быть сгруппированы в командной строке (например, -VОi). Вы должны быть в том View, чьи правила выбирают требуемые версии файлов для сборки Глава 7

  6. Derived Objects - определение Derived Object (DO) - любой файл созданный внутри VOB при сборке Любой DO состоит из: имени файла и директории VOB идентификатора DO (DO –ID): hello.exe@@24 – Feb.16:40.234 контейнера данных конфигурационной записи (CR) или файла аудита процесса сборки Компонента в пуле dbVOB (только для разделяемых DO): create derived object “hello.exe@@24 – Feb.16:40.234” references :1 Существует 2 типа DO: разделяемый – результат обычной сборки неразделяемый - результат экспресс-сборки Глава 7

  7. Что происходит в процессе разработки? • MVFS автоматически отслеживает низкоуровневые системные вызовы на данные ClearCase • открытие • чтение • запись • Отслеживаются вызовы следующих объектов: • версионные объекты • view-private файлы • файлы, создаваемые внутри директорий VOB при сборке • явно указанные зависимости вне VOB • Информация по аудиту хранится в Configuration Record (CR) Глава 7

  8. Листинг Derived Objects ClearCase Explorer отображает информацию о DО в текущем View Глава 7

  9. Содержание Configuration Records (CR) Z:\Main_work> catcr bgrs.exe Target bgrs.exe built by jones.dvt Host "oxygen" running NT 3.51 (i486) Reference Time 11-Dec-94.12:02:39, this audit started 11-Dec-94.12:04:52 View was oxygen:C:\USERS\jones\views\940615.vws Initial working directory was Y:\vob1\docaux\bgr ---------------------------- MVFS objects: ---------------------------- \vob1\docaux\bgr\libbgr\libbgr.lib@@10-Dec.16:45.1893 \vob1\docaux\bgr\bgrs@@11-Dec.12:05.1956 \vob1\docaux\bgr\buga@@11-Dec.12:04.1926 ... ---------------------------- Build Script: ---------------------------- link /out:bgrs.exe main.obj pick.obj bugs.obj bugr.obj bugi.obj bugf.obj bugc.obj bugl.obj buge.obj bugd.obj buga.obj bugh.obj bugw.obj bugfld.obj bugdt.obj bugu1.obj bugu2.obj bugsched.obj ..\libbgr\libbgr.lib Глава 7

  10. Иерархия Configuration Records • Иерархия CR структуру типового make-файла Глава 7

  11. Отображение Configuration Record • Команда Cleartool catcr отображает содержание CR для результата сборки • По умолчанию, отображается CR для результата сборки, но не для промежуточного результата (для их просмотра используйте -recurse). catcr -flat bgrs.exe ---------------------------- MVFS objects: ---------------------------- 1 \vob1\docaux\bgr\buga.c@@\main\1 <19-Dec-94.11:49:03> 1 \vob1\docaux\bgr\bugc.c@@\main\1 <19-Dec-94.11:49:09> 1 \vob1\docaux\bgr\bugd.c@@\main\1 <19-Dec-94.11:49:14> 20 \vob1\docaux\bgr\bugs.h@@\main\3 <17-Jun-94.23:55:22> 1 \vob1\docaux\bgr\bugsched.c@@\main\1 <19-Dec-94.11:50:07> Глава 7

  12. Сравнение Configuration Records • Используйте команду cleartool diffcr для простого сравнения Configuration Records двух DO. • Определяются следующие различия: • Версий MVFS объектов, используемых в качестве источников • Объектов, полученных при сборке • Версий не-MVFS объектов, появляющихся как зависимости make-файла в процессе сборки (для omake) • Общее количество упоминаний объекта при сборке и первый результат, в котором объект упоминался • Опции сборки • Выполненный при сборке скрипт Глава 7

  13. Пример сравнения CR diffcr –flat bgrs.exe bgrs.exe@@11-Dec.12:05.1956 < Reference Time 11-Dec-98.15:23:52, this audit started 11-Dec-98.15:23:59 > Reference Time 11-Dec-98.12:02:39, this audit started 11-Dec-98.12:04:52 < View was DRIVE:\users\jones\views\main.vws [uuid 66e68edc.471511cd.ac55.08:00:2b:33:ec:ab] > View was DRIVE:\users\jones\views\r1_fix.vws [uuid 8b468fd0.471511cd.aca5.08:00:2b:33:ec:ab] ---------------------------- ---------------------------- MVFS objects: ---------------------------- < \vob1\docaux\bgr\bgrs.exe@@11-Dec.15:24.1987 > \vob1\docaux\bgr\bgrs.exe@@11-Dec.12:05.1956 ---------------------------- < \vob1\docaux\bgr\bugs.obj@@11-Dec.15:23.1981 > \vob1\docaux\bgr\bugs.obj@@11-Dec.12:03.1902 ---------------------------- < \vob1\docaux\bgr\bugsched.obj@@11-Dec.15:23.1984 > \vob1\docaux\bgr\bugsched.obj@@11-Dec.12:04.1953 Глава 7

  14. Определение DO установок для View • Свойства DO во View отображаются в овне свойств View. Глава 7

  15. Не разделяемые DO • Являются результатом экспресс-сборки • Определяются свойствами неразделяемых DO во View используемом для построения. • Обеспечивается лучшую производительность по сравнению со сборкой разделяемых DO • Не записываются в папку db VOB. • VOB не требует блокировкой VOB db в процессе записи. • Все результаты сборки хранятся во View, в котором происходит сборка • DO недоступны для wink-in из другого View, но могут повторно использоваться в своем View • Может быть преобразованы в разделяемые • Повторная сборка перезапишет существующий DO. • Обычно используется при отладке до этапа интеграции Глава 7

  16. Не разделяемые DO - хранение Глава 7

  17. Конвертация неразделяемых DO в разделяемые • Неразделяемые DO могут быть преобразованы в разделяемые по средством перемещения и в VOB. • Возможны 2 метода: • Использование сleartool winkin • Использование view_scrubber –p • Если неразделяемый DO имеет субэлемент, они встраиваются (wink-in) автоматически • Однажды сконвертированный DO не может быть преобразован обратно • В процессе wink-in/promotion неразделяемый DO- ID, изменяется в соответствии системой именования VOB DO Глава 7

  18. Пример конвертации DO в разделяемый winkin hello.exe Promoting unshared derived object "hello.exe" Winked in derived object "hello.exe» winkin –recurse main.exe@@04-Sep.16:03.34 Promoting unshared derived object “\mg_test\main.exe” Winked in derived object “\mg_test\main.exe Promoting unshared derived object “\mg_test\main.obj” Winked in derived object “\mg_test\main.obj” Promoting unshared derived object “\mg_test\sibling.exe” Winked in derived object “\mg_test\sibling.exe” Promoting unshared derived object “\mg_test\test.obj” Winked in derived object “\mg_test\test.obj” Глава 7

  19. Разделяемые DO • Два типа разделяемых DO: • неразделяемый – потенциально может быть встроен (wink-in) в другое View. • разденный - копируется в VOB и в дальнейшем автоматически встраивается в другие View. • DO- ID уникальны и отслеживаются VOB • Определяются свойствами разделяемого DO во View, используемом при сборке • Представление переменное. • Компромисс производительности: • первоначальная сборка происходит дольше из-за записи в VOB и процесса wink-in • Используется для ночной (фоновой) сборки когда результат будет использоваться большим числом разработчиков Глава 7

  20. Разделяемые DO - хранение Глава 7

  21. Перевод DO в разделенные - до того Глава 7

  22. Процесс wink-in Глава 7

  23. Что такое Configuration Lookup ? • Конфигурационный Lookup определяет: • пересобран ли DO при выполнении скрипта, • или использован существующий DO из другого View, • или повторно использован текущий DO • Сравнение CR DO, построенных в другом View, и CR DO из текущего View • Разделяемые DO возникают из 2-х источников: • Кэш DO в VOB • Другой View Глава 7

  24. Неразделяемые DO • Характеристики неразделяемых DO: • Вновь создаваемые DO доступны только во View, где созданы • Контейнер данных и CR хранятся во View, а записи в каталоге db хранятся в VOB. • Если Вы удаляете DO, контейнер данных, и запись в каталоге db также удаляются • Если Вы используете сleartool rmdo, то неразделяемые DO становятся View-Private файлами • Операции, ссылающиеся на CR или записи в каталоге db VOB становятся невозможными. (т.е. catcr, diffcr, lsdo и т.д.) Глава 7

  25. Как разделяемые DO становятся разделенными • При пересборке (с clearmake / omake) VOB проверяется на наличие разделяемых DO , которые точно совпадают с критерием View • Если разделяемый DO найден в другом View, он переносится из хранилища того View в хранилище VOB, а затем активизируется (wink-in) в Ваше View • Если DO находится в кэше, он активизирован (wink-in), что позволяет ему появляться в Вашем View даже, если его данные файловой системы находятся в кэше DO VOB. Глава 7

  26. Использование View Scrubber • View Scrubber очищает хранилище private-объектов View путем удаления оттуда контейнеров данных DO • Запускается вручную командой view_vcrubber [-p] [-k] [-n] [do-pname…] • По умолчанию уничтожаются контейнеры DO, которые были перенесены в VOB Глава 7

  27. Определение зависимостей при сборке релиза • Утилиты сборки clearmake / omake определяют источник зависимостей не объявленных в make-файле явно. Пример: Makefile: helo.exe: hello.obj util.obj link -cut:hello.exe hello.obj util.obj hello.obj: cl -c hello.c util.obj: cl -c util.c hello.c: #include “hello.h” int main() {... Глава 7

  28. Check In DO • DO, помещаемые (check in) в версионное дерево называются версиями DO • Имеется возможность доступа к CR версий DO • Используйте опцию –from команды cleartool checking для: • копирования данных из другого раздела в версионное дерево и сохранении CR вместе с DO • опция –from используется только при копировании из другого раздела Глава 7

  29. Пример Checking DO • Когда вносится (check in) DO из другого раздела не копируйте, не перемещайте и не переименовывайте результат сборки, иначе CR не будет сохранена вместе с версией DO. Глава 7

  30. Check In CR • Чтобы проверить только CR DO используется опция –cr команды cleartool checking • Пример: • Если Вы используете этот метод для check inDO, данные DO не сохраняются, но можно увидеть DO по командам dir и сleartool ls: Глава 7

  31. Контрольные вопросы • Каковы возможности clearmake / omake? • Что такое разделяемые DO и неразделяемые DO? • Что такое аудит сборки? • Что делает команда cleartool winking? • Какие опции используются с командами cleartool checking, чтобы сохранить CR вместе с исполняемым файлом или заменить файл в состоянии checkedout другим при checkin? Глава 7

More Related