Организуй свой репозиторий

Post on 18-May-2015

1.029 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Конфигурационный менеджмент: организуй свой репозиторий

Шмаркатюк Сергей (EPAM Systems)

2

Управление конфигурациями

> Управление выпуском (release management)

> Наладка поставок (delivery)

> Организация налаженных процессов разработки

> Согласование способа взаимодействия разных частей программного проекта

3

Классификация инструментов управления конфигурациями

Контроль версий (version control)

Непрерывная интеграция (continuous integration)

Управление сборками (build management)

Юнит-тестирование

Анализ покрытия кода

Статический анализ кода

Генерация документации

4

Контроль версий(version control)

Используют ВСЕ! Но не всем нравится Кому не нравится, тот изобретает свою СКВ Почему может не нравиться? Из-за слияний (merge) Без слияний жизнь проще Но и без них – никак Можно минимизировать количество слияний Как? Раз: уменьшить количество веток Два: определить то, когда слияния возможны, а

когда - нет

5

Гибкая разработка(agile development)

http://agilemanifesto.org

o Итеративность

o Адаптирующийся процесс

o Самоорганизация

o Продуктивность

o Непрерывная поставка

o Изменяющиеся требования

o Внимание к деталям

o Простота

Agile

6

Конфигурационные элементы

> Исходный код

> Библиотеки (бинарные файлы)

> Конфигурационные файлы

> Документация

> Файлы ресурсов (изображения, иконки)

> Структура БД

> Данные и словари данных

> Тесты (юнит-тесты)

> Исполняемые файлы и инсталляционные

пакеты

7

Элементы идентификации

> Сборки

> Типы сборок

> Релизы

> Типы релизов

> Платформы

> Компоненты (third-party)

> Экспериментальные разработки

8

Типы сборок и релизов

Сборки

Релизы

> PA – пре-альфа (тестирование производится разработчиками,

smoke testing)

> A – альфа (тестирование производится тестировщиками)

> B – бета (тестирование производится тестировщиками и пользователями)

> AR – альфа-релиз

> BR – бета-релиз

> RC – релиз-кандидат

> ST – стабильная версия

9

Стандартные директории репозитория

Ствол Директория теговДиректория веток

/trunk /branches /tags

/

Репозиторий

10

Обобщенная структура директорий проекта[codebase]

svn:externals – библиотеки, компоненты

исходный код

файлы конфигурацииsql-файлы инициализации БДфайлы локализациифайлы ресурсов

файлы сборок, развертывания

спецификации, проектная документация

юнит-тестыутилиты

11

Менеджмент веток

Директория веток

/experimental /maintenance /releases

/branches

12

Менеджмент тегов

Директория тегов

/builds /releases

/tags

/PA /A /B /AR /BR /RC /ST

13

Именование версий

1.2.3_x64

Номер сборки Платформа

Мажорная версия

Минорная версия (номер

итерации)

ТипШаблон

(регулярные выражения)

Релиз (/tags/releases) \d+\.\d+\.\d+(_.*)?

Ветка, ориентированная на релиз (/branches/releases)

\d+\.\d+\.x(_.*)?

Сборка (/tags/builds) \d+\.x\.\d+(_.*)?

Ветка поддержки версии (/branches/maintenance/versions)

\d+\.x\.x

([1-9]\d*)\.([1-9]\d*|[0x])\.([1-9]\d*|[0x])(_.*)?

14

Шаблоны именования директорий

Директория базиса исходного кода (codebase)

Шаблон именования директории14

15

Правила наследования номеров версий

В ветке поддержки версии: вся ветка N.x.x

Мажорной версии (N.x.x) соответствуют отрезки:

В стволе: от места ответвления предыдущей мажорной версии (N-1) до ответвления текущей версии (N)

1.x.x 2.x.x 3.x.x … N.x.x

1.x.x

2.x.x

3.x.x

N.x.x

16

Иерархия типов элементов дерева репозитория

Директория альфа-сборокДиректория бета-сборокДиректория пре-альфа сборокДиректория альфа-релизовДиректория бета-релизовДиректория кандидат-релизов

Директория стабильных релизов

Директория программного проекта в репозитории исходного кода

Директория тегов

Ствол (основное направление разработки)

Директория сборок

Директория релизов

Директория веток

Директория веток, соответствующих экспериментальным разработкам

Директория веток, соответствующих длительным разработкам (ветки поддержки)

Директори веток поддержки версий

Директория веток платформ

Директория веток, ориентированных на релиз

17

Организация интеграции релизов и сборок

trunk

PA

A

B

/tags/builds

AR

BR

RC

ST

/tags/releases

1.x.0

1.x.1

1.x.2

1.x.3

2.x.1

1.x.5

1.x.4

2.x.2

2.x.0

/branches/maintenance/versions/1.x.x

/branches/releases/1.0.x

1.0.1

1.0.2 1.0.3

1.0.0

1.0.4

1.x.x 2.x.x

18

trunkPA

A

B

/tags/builds

AR

BR

RC

ST

/tags/releases

1.x.0

1.x.1

1.x.2

1.x.3

2.x.1

1.x.5

1.x.4

2.x.2

2.x.0

/branches/maintenance/versions/1.x.x

/branches/releases/1.0.x

1.0.1

1.0.2 1.0.3

1.0.0

1.0.4

1 12 39 52 73 79 93 112 126 139 155 170 193 201 215 230140

Зависимость содержимого директорий репозитория от номера ревизии1.x.x 2.x.x

Номера ревизий

19

А ТЫорганизовал

свой репозиторий?

top related