Типы ветвей

Download Report

Transcript Типы ветвей

Глава 10
Конфигурационное
управление с
применением ClearCase
Ветвление
Глава 10
1
Цели
• Изучив эту главу, Вы сможете:
 Понимать, как ClearCase действует при
решении параллельных задач с
использованием ветвлений
 Создавать типы ветвей и их экземпляры
 Использовать правило auto-make-branch
конфигурационной спецификации
 Создавать Профайлы View
 Использовать Профайлы View при
создании View для работы в Private-ветви.
Глава 10
2
Преимущества Параллельной
разработки
• Позволяет различным проектам
использовать одни и те же данные в одно и то
же время.
• Управление видом работы (public / private)
• Изолированные изменения.
• Пробные ветви (например, еще не
протестированные возможности).
• Постоянные ветви (например, bugfix в
изолированном релизе)
• Предотвращает задержки – разработка
продолжается в период сборки.
Глава 10
3
Работа с ветвями.
Глава 10
4
Типы ветвей – Обзор
•Пользовательский – определяется именем,
сформированным как уникальное имя ветви в
версионном дереве.
 Экземпляры типов ветвей могут и должны
использоваться параллельно с различными
элементами.
 Работает по принципу 2-х шагов
1. Объявляется тип, затем
2. Создается один или несколько экземпляров
этого типа.
•Примеры типов ветвей для использования
параллельной разработки:
Rel2_bugfix - исправление ошибок
Johns_exp - индивидуальные эксперименты
Wizard_features - разработка специальных свойств
Глава 10
5
Почему тип?
•Позволяет группировать логически несколько
версий элемента
 Единая привязка в VOB.
• Централизованный административный
контроль имен ветвей
 Открытие и закрытие ветвей во время процесса
разработки.
\main
\main
\bugfix
\pvt
\bugfix
bugfix
Глава 10
10-6
6
Правила для типов ветвей
•При задании имени типа ветви следуйте этим
правилам:
 Имя не должно быть только числом.
 Имя может содержать буквы, цифры,
подчеркивания, дефисы и точки.
• Так как типы ветвей и типы меток могут
использовать одни и те же имена, принято
следующее соглашение:
 Типы ветвей используют имена нижнего
регистра: rel2_bugfix
 Типы меток используют имена верхнего регистра:
REL2
• При создании новой ветви, по умолчанию
устанавливается одна ветвь на один элемент.
Глава 10
7
Просмотр типов ветвей.
• Используйте Type Explorer для создания типа,
переименовывания, внесения изменеий и
просмотра свойств типа ветви
Глава 10
8
Объявление типа новой ветви.
• Тип новой ветви может быть создан через
Type Explorer
Глава 10
9
Изменение ограничений
• Панель Type Details в окне свойств типа
ветви, позволяет изменять ограничения
Глава 10
10
Создание экземпляра
•После создания типа ветви, ее можно
использовать с версиями элемента VOB с
помощью:
 Оператора –mkbranch в config spec, что
обеспечивается через:
• Детальное редактирование config spec – добавление
правил
• Привязку View к Профайлу View
• Задание View для использования Private-ветвей.
 Команды Cleartool mkbranch
• Использование config spec, для
автоматического создания ветви – лучший
метод ветвления
Глава 10
11
Оператор mkbranch
•Оператор mkbranch в config spec выполняет
автоматическое ветвление при checkout:
Rule 1: element
*
Rule 2: element
*
Rule 3: element
*
checkedout
\main\rel2_bugfix\LATEST
REL2
-mkbranch rel2_bugfix
•Правило 3 интерпретируется как:
Выбор версии элемента с меткой REL2
С помощью checkout от версии с меткой REL2 автоматически
создается ветвь rel2_bugfix
•После выполнения операции mkbranch CO не
выполняется, а происходит возврат в начало config spec
и новый проход по правилам.
Глава 10
12
Автоматическое создание ветви
• Измените Ваш
config spec для
создания ветви,
когда Вы
совершаете
element * checkedout
операцию checkout
element *
\main\rel2_bugfix\LATEST над элементами с
element * REL2 -mkbranch меткой REL2.
rel2_bugfix
• Правило config
spec выбирает
версию и указывает
на точку ветвления
после checkout.
Глава 10
13
Автоматическое создание ветви
• Извлеките версию файла
• Теперь выбрана версия в состоянии
CHECKEDOUT
• Version Tree Browser покажет новую
ветвь и CHECKEDOUT версию на ней
Глава 10
14
Автоматическое создание ветви
(продолжение)
•Многоуровневое автоветвление
 Config spec может включать «каскад» операторов
-mkbranch
Rule 1: element * checkedout
Rule 2: element * \main\rel2_bugfix404\LATEST
Rule 3: element * \main\rel2_bugfix\LATEST
-mkbranch bug_404
Rule 4: element *
REL2 -mkbranch rel2_bugfix
 Ветви будут создаваться до тех пор, пока не будет
достигнута нулевая версия, находящаяся на
последней ветви из созданного каскада ветвей
Глава 10
15
Многоуровневое автоветвление
Глава 10
16
Параллельная разработка,
использующая профайлы View.
• Профайлы View могут быть использованы для
автоматического ветвления:
 Руководитель проекта создает View-профайлы
• View-профайл определяет интеграционную ветвь,
baseline (или контрольную точку) и VOB-ы
 Разработчики связывают View-профайлы со
своими View
• Это обеспечивает им сonfig_spec с версий из baseline и
возможность создавать при необходимости
интеграционную ветвь
 Разработчики могут создавать Private-ветви, для
изоляции своей работы
 Разработчики могут сливать результаты работы
из Private-ветви в интеграционную ветвь
Глава 10
17
View профайлы – цели.
•View профайлы:
 Обеспечивают общие настройки конфигурации
для всей команды разработчиков
 Автоматизирует задачи параллельной
разработки
 Предоставляет специальную модель для
эффективного использования ClearCase
 Позволяет разработчикам не вникать в детали
Config spec и создания ветвей
Глава 10
18
Компоненты View профайлов.
•View-профайл содержит следующую
информацию:
 Конфигурационную спецификацию,
выбирающую подходящие версии для работы
команды
 Список меток для контрольных точек,
определяющих набор основных уровней развития
проекта
 Список VOB, содержащих исходную информацию
по проекту
 Административный VOB (если есть),
используемый командой
Глава 10
19
Создание View-профайлов
• ClearCase обеспечивает программу,
автоматизирующую создание нового Viewпрофайла
Глава 10
20
Создание View-профайлов (продолжение)
• Руководитель проекта устанавливает имена
ветвей и меток
Глава 10
21
Создание профайлов View - Config spec
• Config spec имеет опцию автоветвления
Глава 10
22
Использование профайлов View.
•Project Leader использует View Profile
Explorer для определения профайла
•Члены команды связывают View с Viewпрофайлами
• Пользователи обеспечены:
 Выбором правильной версии с помощью
Config spec
 Автоматической активацией VOB при
активации View
 Автоматическим обновлением Config spec
View при обновлении профайла View
Глава 10
23
Интеграционные и private ветви
• Интеграционная ветвь служит для хранения
общих изменений участников проекта
• Private ветвь может создаваться и
использоваться одним разработчиком для
изоляции своих разработок
hello.c
внутри проекта
\main
 Позволяет большую гибкость,
\main _pvt
чем общая работа на одной
интегрированной ветви.
 Позволяет лучше координировать
работы среди членов команды
 По окончанию работы в собственной
ветви, результаты передаются в
интеграционную ветвь
Глава 10
\rel3 _enhance
Private
branch
Integration
branch
24
Привязка профайла View к
существующему View.
• Существующий View может быть привязан к
View-профайлу
Глава 10
25
Привязка View-профайла к новому View
• В процессе создания View, View Creation
Wizard позволяет выбрать View-профайл
Глава 10
26
Использование View-профайла с Private
ветвью
• Если отмечена опция private branch на
последнем шаге создания View, то:
•Set Up a Private
Branch Wizard
предлагает ввести
имя ветви и точку
ветвления
• Config spec View
модифицируется для
создания и выбора
Private Branch
Глава 10
27
Задание Private ветвей для View
Укажите имя
Private ветви и
точки ветвления
Выберите точку
ветвления из
выпадающего
списка
Глава 10
28
Создание Собственных ветвей Config spec
• При создании private
ветви конфигурация View
изменяется автоматически
• Работа во View
происходит по принципу
checkout-edit-checkin
• Когда создание ветви
закончено:
 Предлагается слить
изменения в
интеграционную ветвь.
 Предлагается закрыть
private ветвь
Глава 10
29
Checkout на Private ветви
• Checkout создает Private ветвь
Глава 10
30
Завершение работы с Private ветвью
• Член команды может
выбирать сливать ли
изменения в
интеграционную ветвь
 Чтобы сделать
изменения доступными
для команды, их
необходимо слить с
интеграционной ветвью
ИЛИ
• Отложить работу на
Private ветви с
сохранением всех
изменений на ней
Глава 10
31
Завершение работы c Private ветвью
(продолжение)
• Когда работа с
Private ветвью
заканчивается,
Config spec View
восстанавливает все
изменения в
профайле View
Config spec.
Глава 10
32
Завершение работы для
Собственной ветви (продолжение)
• Если Собственная ветвь слита с
интеграционной (и не заблокирована), то
результат слияния может быть просмотрен
через Version Tree Browser.
Глава 10
33
Тестирование
• Тестирование исходных кодов на собственной
ветви (рекомендуется до слияния с
интегрированной ветвью)
• Тестирование исходных кодов на
интегрированной ветви
• Добавление
(check in) исходных
файлов в VOB
Глава 10
34
Контрольные вопросы
•Как ClearCase решает задачи параллельной
разработки?
• Что необходимо сделать до создания новой
ветви в версионном дереве элемента?
• Где в GUI можно создать новые типы ветвей?
• Как можно добавить ветвь к версионному
дереву элемента?
• Опишите процессы после использования
View-профайлов с Private ветвью
Глава 10
35