ClearCase UCM - лучшие практики с помощью компонентов

Самыми точными являются Цифровые Элементы NetAcuity... не свободный, но Вы получаете то, что Вы платите большую часть времени.... Цифровой Элемент

8
задан zac 19 November 2009 в 15:57
поделиться

1 ответ

Единственная наиболее опасная ошибка:

После определения компонента вы не можете перемещать элемент за пределы этого компонента (вы можете скопировать его и воссоздать в другом месте, но потеряете его history)

Единственный наиболее полезный передовой метод:

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

  • компонентный подход : один или два файла с возможностью записи компоненты, остальное есть только как немодифицируемый компонент. Это масштабируемый подход, позволяющий определить один проект для каждого компонента для разработки с «фиксированной конфигурацией» (то есть «другими базовыми линиями», представляющими фиксированные состояния немодифицируемых компонентов, которые вам нужны для компиляции модифицируемый. Вы можете изменить в любое время эту конфигурацию, то есть вы можете перенастроить базовые линии основы немодифицируемого компонента, когда захотите).

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

    Помните: Stream представляет собой усилие разработки .
    Не вызывайте Stream после ресурса (например, VonC_stream ), но после задачи или набора задач, которые нужно выполнить в этом потоке (как в APP_LCH_R32_Dev : Разработка для 32-го выпуска моего приложения Launcher)


    Примечание. UCM - это просто некоторые метаданные поверх ClearCase: даже если группа файлов определена как компонент UCM, ничто не мешает вам по-прежнему создавать классические ветки, проверки или проверки, не относящиеся к UCM (в не -UCM views).


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

    Да, поэтому важна прикладная архитектура. Опять же, как только компонент определен, вы не можете перемещать элементы между этими компонентами.

    Еще одна деталь, которую необходимо знать о компонентах, - это их расположение:

    myVob
      myComponent1
      myComponent2
      myComponent3
    

    Корневой компонент всегда находится на первом уровне ниже Vob.
    Вы также можете определить компонент как полностью Vob, но я бы не рекомендовал это (добавление Vob создает нагрузку на ваш сервер Vob. Добавление каталога в существующий Vob ничего не стоит)

    Это означает, что если вы определить некоторые технические библиотеки как компоненты, вы не можете использовать:

    myLibs
      Apache
        ant
        xalan
        xerces
    

    , но должны сделать:

    myLibs
      apapche_ant
      apache_xalan
      apache_xerces
    

    Последнее предупреждение: зависимость (истинный признак системы управления конфигурацией )

    Одно из главных преимуществ UCM (по крайней мере, я так думал в то время - 2003 г.) - это зависимость.
    Если A зависит от B , и я поместил A в свой проект, он автоматически включит B в тот же проект.

    ] Магия.

    Но она сломана.

    • Во-первых, никогда не делайте основанных на корне зависимостей (корневой компонент - это набор файлов). Он сломается при первом перекрытии:
    
        A1
          B1
        B2
    

    Здесь вам понадобится B2 , чтобы продолжить строительство A , но A начинается с A1 на основе B1 : B2 переопределяет B1 . Как только вы установите базовую линию на A ( A2 ), все будет кончено. Вы больше не сможете изменить B. Базовый уровень паразита (называемый A2 !?) будет помещен на (немодифицируемый!) Компонент B из-за перекрытия. У вас все еще есть переопределение, но на этот раз между некорневыми компонентами.
    Это по-прежнему будет базовым уровнем паразита (на BDep , называется A2 ), но, по крайней мере, вы сможете перенастроить BDep2 в другие базовые значения позже ( ] BDep3 , BDep4 ...)

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

    Читайте также Как использовать возможности Clearcase

    6
    ответ дан 5 December 2019 в 22:19
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: