Файл: Центр дистанционного обучения online mirea ru Onlineedu mirea ru.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.03.2024

Просмотров: 7

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Центр дистанционного обучения
online.mirea.ru
Online-edu.mirea.ru
Технология разработки программных приложений
ФИО преподавателя: Петренко А.А. e-mail: petrenko@mirea.ru

Центр дистанционного обучения
online.mirea.ru
Контроль версий в программных проектах
ЛЕКЦИЯ 1
Рассматриваемые вопросы
1. Коллективная разработка программного обеспечения
2. Системы контроля версий и принципы их работы
3. Особенности применения Git

Центр дистанционного обучения
online.mirea.ru
Список литературы
1. Ициксон В.М. Лекции по технологии разработки программного обеспечения. –
СПб.: СПбПУ, 2019 г.
2. Орлов С.А., Цилькер Б.Я. Технологии разработки программного обеспечения. –
СПб.: Питер, 2012 г.
3.Иванова Г.С. Технология программирования.
– Москва: Кнорус, 2013 г.

Центр дистанционного обучения
online.mirea.ru
Технология разработки программных приложений (ТРПП)
МЕТОДЫ
СРЕДСТВА
(утилиты)
ПРОЦЕДУРЫ
Включает …
Обеспечивают решения
определенных задач в
разработке ПО: анализ
требований,
кодирование и т.п.
Обеспечивают
совместное
применение
методов
разработки ПО и
CASE-средств
CASE – средства и
системы
автоматизированной
поддержки методов
разработки ПО

Центр дистанционного обучения
online.mirea.ru
Группы процессов жизненного цикла по
ГОСТ Р
ИСО/МЭК 12207
(введен 2012-03-01)

Центр дистанционного обучения
online.mirea.ru
Коллективная работа над программным проектом
Основные задачи:
◦ общий доступ к файлам программного проекта;
◦ повышение надежности хранения файлов проекта;
◦ cохранение истории модификации (версий) файла;
◦ сравнение версий;
◦ пометка отдельных версий файла
◦ возможность возврата к предыдущим версиям
◦ поддержание и развитие нескольких параллельных историй развития проекта;
◦ объединение разрозненного программного кода.

Центр дистанционного обучения
online.mirea.ru
Общий доступ к файлу
Особенность:
◦ одновременное редактирование одного файла разными пользователями
Проблема:
◦ потеря изменений, сделанных пользователем
(затерты записью изменений другого пользователя)
Типовые пути решения:
◦ в параллельных системах для разрешения используются семафоры, мьютексы, критические секции и т.п.)


Центр дистанционного обучения
online.mirea.ru
Сохранение истории изменений файлов
Необходимо хранить последовательную непрерывную историю изменений файла:
◦ версия;
◦ автор изменения;
◦ время изменения;
◦ собственно изменения;
◦ причина изменения;
◦ прочие параметры на усмотрение разработчика.

Центр дистанционного обучения
online.mirea.ru
Пометка версий файла
Отдельные версии файлов необходимо специально помечать для обеспечения возможности выделения:
◦ одной версии файла от другой;
◦ версии, обладающей определенными cвойствами;
◦ версии, являющейся частью релиза заданного проекта определенной версии;
◦ и прочее на усмотрение разработчика.

Центр дистанционного обучения
online.mirea.ru
Поддержка и развитие несколько историй файла
Причины разветвления версий файла:
◦ развитие нескольких версий проекта:
- поставленных заказчику;
- разрабатываемых.
◦ наличие нескольких конфигураций проекта:
- для разной аппаратуры;
- для разных операционных систем.
◦ разработка новой (экспериментальной) функциональности.

Центр дистанционного обучения
online.mirea.ru
Системы контроля версий
Другие названия:
◦ системы управления версиями
(VCS – Version Control System)
◦ системы контроля ревизий
(RCS – Revision Control System)
◦ системы управления исходным кодом
(SCM – Source Code Management);
◦ прочие.

Центр дистанционного обучения
online.mirea.ru
Назначение и состав систем контроля версий
СКВ предназначены для автоматизации групповой работы и управления версионированием проектов.
СКВ предусматривают:
◦ репозиторий (или репозитории) хранения проектов;
◦ стандартные операции обеспечения групповой работы;
◦ клиентов для выполнения операций;
◦ прочее.

Центр дистанционного обучения
online.mirea.ru
Типы систем контроля версий
Централизованные СКВ характеризуются :
◦ единым централизованным хранилищем;
◦ клиент-серверным доступом.
Примеры: CVS, Subversion, MS Visual Source Safe и т.п.
Распределённые СКВ характеризуются:
◦ хранением репозитория на каждом компьютере;
◦ наличием сетевой синхронизации репозиториев посредством слияний (заплаток, патчей, change sets и т.п.);
◦ использованием в интернет-проектах, когда разработчики существенно удалены друг от друга.
Примеры: mercurial, git, Bazaar и т.п.


Центр дистанционного обучения
online.mirea.ru
Ревизия файла
Ревизия файла – уникальный идентификатор версии файла в системе контроля версии, например:
◦ CVS: 1.2
◦ SVN: 238
◦ Git, Mercurial: хэш SHA-1
При изменении файла номер ревизии изменяется по определенному правилу:
◦ иногда номер ревизии является атрибутом всего репозитория

Центр дистанционного обучения
online.mirea.ru
Атрибуты ревизии файла
К атрибутам ревизии файлов относятся:
◦ идентификатор;
◦ автор изменения;
◦ дата;
◦ текстовое описание изменения;
◦ внешние атрибуты
- тэги;
- идентификаторы ветвей.
◦ прочее.

Центр дистанционного обучения
online.mirea.ru
Хранимые копии проекта
Для централизованных СКВ:
◦ локальная копия проекта;
◦ локальная копия проекта, находящегося под контролем СКВ;
◦ серверная копия, находящая в репозитории.
Для распределенных СКВ:
◦ локальная копия проекта;
◦ локальная копия проекта, находящегося под контролем СКВ;
◦ Копия, находящая в локальном репозитории;
◦ Копия, находящая в удаленном репозитории.

Центр дистанционного обучения
online.mirea.ru
Централизованные системы контроля версий

Центр дистанционного обучения
online.mirea.ru
Распределенные системы контроля версий

Центр дистанционного обучения
online.mirea.ru
Принципы хранения файлов в системах версионирования
Поддержка текстового и бинарного формата хранения изменений
Для текстового формата:
◦ хранение инкрементных изменений;
◦ возможность визуального сравнения ревизий.
Для бинарного формата:
◦ хранение полных версий изменения файлов.

Центр дистанционного обучения
online.mirea.ru
Пометка версий в системах контроля версий
Основные способы:
◦ тэги;
◦ виртуальные каталоги.

Центр дистанционного обучения
online.mirea.ru
Тэги
Тэг – текстовая метка, привязанная к какой-либо ревизии файла или репозитория:
◦ одна ревизия может содержать несколько тэгов;
◦ выборку ревизии файла/файлов можно производить по тэгам.

Центр дистанционного обучения
online.mirea.ru
Виртуальные каталоги
Вместо тэга создается виртуальный каталог.
◦ В каталог помещаются виртуальные копии необходимых ревизий всех требуемых файлов
◦ Работа с таким каталогом происходит стандартными способами


Центр дистанционного обучения
online.mirea.ru
Типовые операции в системах контроля версий
◦ Импорт проекта (import)

Экспорт проекта (export)

Получение проекта (checkout, clone, …)

Обновление файла (update)

Фиксация изменений (commit)

Сравнение изменений

Установка тэгов

Переход у другой ревизии (откат)

Создание ветвей

Переключение на ветвь

Слияние (merge)

Разрешение конфликтов

Блокировка файлов

Выгрузка изменений (push)

Запрос на изменение (pull request)



Центр дистанционного обучения
online.mirea.ru
Импорт проекта (import)
Первоначальное помещение локального проекта в репозиторий

Центр дистанционного обучения
online.mirea.ru
Экспорт проекта (export)
• Извлечение проекта из СКВ в локальный каталог;

Удаление проекта из СКВ.

Центр дистанционного обучения
online.mirea.ru
Получение проекта (checkout, clone)
Получение локального слепка проекта осуществляется по одному из критериев:
◦ головная версия проекта (HEAD, trunk, default, master,…);
◦ версия проекта на определенную дату;
◦ версия проекта с определенным тэгом;
◦ версия проекта из определенной ветви;


Центр дистанционного обучения
online.mirea.ru
Получение проекта

Центр дистанционного обучения
online.mirea.ru
Фиксация изменений (commit)
◦ посылка измененной версии файла в репозиторий;
◦ операция игнорируется, если ревизия на сервере изменилась.

Центр дистанционного обучения
online.mirea.ru
Обновление изменений (update)
◦ копирование свежей версии из репозитория;
◦ слияние локальных изменений и серверных в локальном файле.

Центр дистанционного обучения
online.mirea.ru
Разрешение конфликтов при операциях в СКВ

Конфликт – это ситуация, когда одна и та же строка была по-разному изменена в двух версиях
◦ Если при слиянии произошел конфликт – в текст попадают обе версии участков кода с пометками
◦ Разрешение проводится только в локальной копии
◦ В репозитории хранятся только утвержденные версии с разрешенным конфликтом
* Отсутствие конфликта не означает отсутствия ошибок

Центр дистанционного обучения
online.mirea.ru
Разрешение конфликтов при операциях в СКВ

Центр дистанционного обучения
online.mirea.ru
Сравнение изменений в системе контроля версий
Сравнение изменений
◦ действует только для текстовых файлов;
◦ сравнивать можно любые две ревизии одного файла из любых ветвей проекта.


Центр дистанционного обучения
online.mirea.ru
Сравнение ревизий в системе контроля версий

Центр дистанционного обучения
online.mirea.ru
Ветви файлов
◦ Ветвь (ветка, branch) – механизм, который служит для ветвления дерева ревизий файла.
◦ Имя ветви однозначно определяет группу ревизий (ветвь).
◦ Имя ветви используется для переключения между ветвями ревизий файла.

Центр дистанционного обучения
online.mirea.ru
Системы контроля версий
Свободно-распространяемые системы
◦ * RCS
◦ CVS;
◦ Subversion (SVN);
◦ Mercurial;
◦ Git;
◦ Bazaar;
◦ Darcs;
◦ другие.

Центр дистанционного обучения
online.mirea.ru
Система CVS
◦ Одна из первых и изначально самых распространенных систем.
◦ Состоит из двух частей: сервера и клиента.
◦ Стандартный клиент – консольный, позволяет выполнять все операции.
◦ Имеется множество графических клиентов
◦ http://www.cyclic.com/

Центр дистанционного обучения
online.mirea.ru
Система CVS

Центр дистанционного обучения
online.mirea.ru
Система CVS

Центр дистанционного обучения
online.mirea.ru
Система CVS

Центр дистанционного обучения
online.mirea.ru
Система Subversion (SVN)
◦ создана с целью заменить CVS;
◦ исправляет большинство недостатков CVS;
◦ http://subversion.tigris.org
◦ имеется большое количество графических клиентов.

Центр дистанционного обучения
online.mirea.ru
Система Subversion (SVN)

Центр дистанционного обучения
online.mirea.ru
Система SmartSVN

Центр дистанционного обучения
online.mirea.ru
Распределенные системы контроля версий
◦ Mercurial;
◦ Git;
◦ Bazaar;
◦ Darcs;
◦ Monotone;
◦ GNU arch;
◦ …

Центр дистанционного обучения
online.mirea.ru
Коммерческие системы контроля версий
◦ Microsoft Visual SourceSafe
◦ IBM Rational ClearCase
◦ Microfocus StarTeam
◦ Perforce
◦ Microsoft Team Foundation Server
◦ …

Центр дистанционного обучения
online.mirea.ru
Спасибо за внимание!