• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Организуй свой репозиторий
 

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

on

  • 1,628 views

 

Statistics

Views

Total Views
1,628
Views on SlideShare
1,619
Embed Views
9

Actions

Likes
2
Downloads
20
Comments
0

2 Embeds 9

http://www.linkedin.com 7
http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • Конфигурационный менеджмент: организуй свой репозиторий
      Шмаркатюк Сергей (EPAM Systems)
    • Управление конфигурациями
      • Управление выпуском (release management)
      • Наладка поставок (delivery)
      • Организация налаженных процессов разработки
      • Согласование способа взаимодействия разных частей программного проекта
      2
    • Классификация инструментов управления конфигурациями
      Контроль версий (version control)
      Юнит-тестирование
      Анализ покрытия кода
      Непрерывная интеграция (continuous integration)
      Статический анализ кода
      Генерация документации
      Управление сборками (build management)

    • Контроль версий(version control)
      • Используют ВСЕ!
      • Но не всем нравится
      • Кому не нравится, тот изобретает свою СКВ
      • Почему может не нравиться?
      • Из-за слияний (merge)
      • Без слияний жизнь проще
      • Но и без них – никак
      • Можно минимизировать количество слияний
      • Как?
      • Раз: уменьшить количество веток
      • Два: определить то, когда слияния возможны, а когда - нет
      4
    • Гибкая разработка(agile development)
      http://agilemanifesto.org
      • Итеративность
      • Адаптирующийся процесс
      • Самоорганизация
      • Продуктивность
      • Непрерывная поставка
      • Изменяющиеся требования
      • Внимание к деталям
      • Простота
      Agile
    • Конфигурационные элементы
      Исходный код
      Библиотеки (бинарные файлы)
      Конфигурационные файлы
      Документация
      Файлы ресурсов (изображения, иконки)
      Структура БД
      Данные и словари данных
      Тесты (юнит-тесты)
      Исполняемые файлы и инсталляционные пакеты
    • Элементы идентификации
      Сборки
      Типы сборок
      Релизы
      Типы релизов
      Платформы
      Компоненты (third-party)
      Экспериментальные разработки
      7
    • Типы сборок и релизов
      Сборки
      • PA – пре-альфа(тестирование производится разработчиками, smoke testing)
      • A – альфа (тестирование производится тестировщиками)
      • B – бета (тестирование производится тестировщиками и пользователями)
      Релизы
      • AR – альфа-релиз
      • BR – бета-релиз
      • RC – релиз-кандидат
      • ST – стабильная версия
    • Стандартные директории репозитория
      Репозиторий
      /
      /trunk
      /branches
      /tags
      Ствол
      Директория тегов
      Директория веток
      9
    • Обобщенная структура директорий проекта
      [codebase]
      файлы сборок, развертывания
      спецификации, проектная документация
      исходный код
      svn:externals – библиотеки, компоненты
      файлы конфигурации
      sql-файлы инициализации БД
      файлы локализации
      файлы ресурсов
      юнит-тесты
      утилиты
    • Менеджмент веток
      Директория веток
      /branches
      /experimental
      /maintenance
      /releases
      11
    • Менеджмент тегов
      Директория тегов
      /tags
      /builds
      /releases
      /PA
      /A
      /B
      /AR
      /BR
      /RC
      /ST
    • Именование версий
      1.2.3_x64
      ([1-9]d*).([1-9]d*|[0x]).([1-9]d*|[0x])(_.*)?
      Минорная версия (номер итерации)
      Номер сборки
      Мажорная версия
      Платформа
      13
    • Шаблоны именования директорий
      Директориябазисаисходногокода (codebase)
      14
      Шаблон именованиядиректории
    • Правила наследования номеров версий
      1.x.x
      2.x.x
      3.x.x

      N.x.x
      N.x.x
      3.x.x
      2.x.x
      1.x.x
      Мажорной версии (N.x.x)соответствуют отрезки:
      В стволе: от места ответвления предыдущей мажорной версии (N-1) доответвления текущей версии (N)
      В ветке поддержки версии: вся ветка N.x.x
      15
    • Иерархия типов элементов дерева репозитория
      Директория программногопроекта в репозиторииисходногокода
      Директорияальфа-сборок
      Директориябета-сборок
      Ствол (основноенаправлениеразработки)
      Директорияпре-альфасборок
      Директориятегов
      Директория альфа-релизов
      Директориясборок
      Директориярелизов
      Директориябета-релизов
      Директорияветок
      Директориякандидат-релизов
      Директорияветок, соответствующихэкспериментальнымразработкам
      Директориястабильных релизов
      Директорияветок, соответствующихдлительнымразработкам (веткиподдержки)
      Директори ветокподдержкиверсий
      Директорияветок платформ
      Директорияветок, ориентированных на релиз
    • Организация интеграции релизов и сборок
      1.x.x
      2.x.x
      1.x.0
      1.x.3
      2.x.0
      1.x.1
      2.x.1
      1.x.4
      1.x.2
      1.x.5
      2.x.2
      /branches/maintenance/versions/1.x.x
      1.0.0
      1.0.1
      1.0.2
      1.0.3
      1.0.4
      /branches/releases/1.0.x
      17
    • Зависимость содержимого директорий репозитория от номера ревизии
      1.x.x
      2.x.x
      1.x.0
      1.x.3
      2.x.0
      1.x.1
      2.x.1
      1.x.4
      1.x.2
      1.x.5
      2.x.2
      /branches/maintenance/versions/1.x.x
      1.0.0
      1.0.1
      1.0.2
      1.0.3
      1.0.4
      /branches/releases/1.0.x
      Номера ревизий
      1
      12
      39
      52
      73
      79
      93
      112
      126
      139
      155
      170
      193
      201
      215
      230
      140
      18
    • А ТЫ
      организовал свой репозиторий?